800
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
	exgrid1.BeginUpdate();
	exgrid1.EnsureVisibleColumn(COMVariant::createFromInt(0));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ExpandItem(com_Items.FirstVisibleItem(),false);
	exgrid1.EndUpdate();
}
799
Is there any public method to export the selected data

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		COM::createFromVariant(com_Columns.Add("C2")).FormatColumn("1 index `A-Z`");
		COM::createFromVariant(com_Columns.Add("C3")).FormatColumn("100 index ``");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.SelectItem(com_Items.AddItem("Item 2"),true);
		com_Items.AddItem("Item 3");
	exgrid1.EndUpdate();
	print( "Export CSV Selected Items Only:" );
	print( exgrid1.Export("","sel") );
}
798
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ScrollBars(15/*exDisableBoth*/);
	exgrid1.ScrollPartVisible(0/*exVScroll*/,65536/*exExtentThumbPart*/,true);
	exgrid1.ScrollPartVisible(1/*exHScroll*/,65536/*exExtentThumbPart*/,true);
	exgrid1.ScrollPartVisible(2,65536/*exExtentThumbPart*/,true);
	exgrid1.ScrollWidth(4);
	exgrid1.Background(276/*exVSBack*/,WinApi::RGB2int(240,240,240));
	exgrid1.Background(260/*exVSThumb*/,WinApi::RGB2int(128,128,128));
	exgrid1.ScrollHeight(4);
	exgrid1.Background(404/*exHSBack*/,exgrid1.Background(276/*exVSBack*/));
	exgrid1.Background(388/*exHSThumb*/,exgrid1.Background(260/*exVSThumb*/));
	exgrid1.Background(511/*exScrollSizeGrip*/,exgrid1.Background(276/*exVSBack*/));
	exgrid1.EndUpdate();
}
797
I need to format a Column with Currency Format, but we use we are using Dhirams (AED)for the Amount. How to do this

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.MarkSearchColumn(false);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Name");
		var_Column = COM::createFromVariant(com_Columns.Add("Currency")); com_Column = var_Column;
			com_Column.SortType(1/*SortNumeric*/);
			com_Column.AllowSizing(false);
			com_Column.Width(64);
			com_Column.FormatColumn("currency(value)");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Format")); com_Column1 = var_Column1;
			com_Column1.SortType(1/*SortNumeric*/);
			com_Column1.AllowSizing(false);
			com_Column1.Width(64);
			com_Column1.FormatColumn("`AED ` + (value format ``)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Value 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(10));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(10));
		h = com_Items.AddItem("Value 2");
		com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(20));
		com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(20));
	exgrid1.EndUpdate();
}
796
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.MarkSearchColumn(false);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Car")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.FilterType(240/*exFilter*/);
			com_Column.Filter("MAZDA");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Equipment")); com_Column1 = var_Column1;
			com_Column1.DisplayFilterButton(true);
			com_Column1.DisplayFilterPattern(false);
			com_Column1.CustomFilter("Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*");
			com_Column1.FilterType(3/*exPattern*/);
			com_Column1.Filter("AIR BAG");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag");
		com_Items.CellValue(com_Items.AddItem("Toyota"),COMVariant::createFromInt(1),"Air Bag,Air condition");
		com_Items.CellValue(com_Items.AddItem("Ford"),COMVariant::createFromInt(1),"Air condition");
		com_Items.CellValue(com_Items.AddItem("Nissan"),COMVariant::createFromInt(1),"Air Bag,ABS,ESP");
		com_Items.CellValue(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag, ABS,ESP");
		com_Items.CellValue(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"ABS,ESP");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
795
How can I have a case-sensitive filter

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.MarkSearchColumn(false);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Car")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.FilterType(496/*exFilterDoCaseSensitive | exFilter*/);
			com_Column.Filter("Mazda");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Equipment")); com_Column1 = var_Column1;
			com_Column1.DisplayFilterButton(true);
			com_Column1.DisplayFilterPattern(false);
			com_Column1.CustomFilter("Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*");
			com_Column1.FilterType(259/*exFilterDoCaseSensitive | exPattern*/);
			com_Column1.Filter("Air Bag");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag");
		com_Items.CellValue(com_Items.AddItem("Toyota"),COMVariant::createFromInt(1),"Air Bag,Air condition");
		com_Items.CellValue(com_Items.AddItem("Ford"),COMVariant::createFromInt(1),"Air condition");
		com_Items.CellValue(com_Items.AddItem("Nissan"),COMVariant::createFromInt(1),"Air Bag,ABS,ESP");
		com_Items.CellValue(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag, ABS,ESP");
		com_Items.CellValue(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"ABS,ESP");
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
794
How can I exclude an item from aggregate/total computation

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	COM::createFromVariant(exgrid1.Columns().Add("Default")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"sum(all,rec,%0)");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"`Sum: ` + (value format ``) ");
		com_Items.AddItem(COMVariant::createFromInt(10));
		h = com_Items.AddItem(COMVariant::createFromInt(20));
		com_Items.SortableItem(h,false);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"value + ` <fgcolor=808080> this item is excluded from aggregate computations</fgcolor>`");
		com_Items.AddItem(COMVariant::createFromInt(30));
}
793
Is is possible to change the default group header to display sum rather than count

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(6)); com_Column = var_Column;
	com_Column.AllowGroupBy(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.GroupByFormatCell("'<caption> (sum: <b>' + value + '</b>, of Freight)'");
		com_Column.GroupByTotalField("sum(current,rec,%6)");
		com_Column.SortOrder(true);
	exgrid1.EndUpdate();
}
792
How do I get the caption of the group during the AddGroupItem event

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		print( "Caption:" );
		print( com_Items.CellCaption(_Item,com_Items.GroupItem(_Item)) );
		print( "Value:" );
		print( com_Items.CellValue(_Item,com_Items.GroupItem(_Item)) );
}

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.GroupByFormatCell("'<b><caption></b> (' + value + ') group'");
		com_Column.SortOrder(true);
	exgrid1.EndUpdate();
}
791
Is it possible, to add more aggregate functions to grouping header

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.FormatCell(_Item,com_Items.GroupItem(_Item),"value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`");
		com_Items.CellValue(_Item,"Min","min(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Min",4/*exTotalField*/);
		com_Items.CellValue(_Item,"Max","max(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Max",4/*exTotalField*/);
		com_Items.CellValue(_Item,"Sum","sum(current,all,dbl(%6))");
		com_Items.CellValueFormat(_Item,"Sum",4/*exTotalField*/);
}

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_Columns,com_rs;
	anytype rs,var_Column,var_Columns;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(true);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Min")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Max")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Sum")).Visible(false);
	exgrid1.EndUpdate();
}
790
Is it possible to display more aggregate functions to a single cell (method 2)

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Columns,com_Editor,com_Items;
	anytype var_Columns,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SortOnClick(0/*exNoSort*/);
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.Indent(13);
	exgrid1.HeaderVisible(false);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Items");
		var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("Quantity"))).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(4/*SpinType*/);
		COM::createFromVariant(com_Columns.Add("Sum")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Min")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Max")).Visible(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Items");
		com_Items.CellMerge(h,COMVariant::createFromInt(0),COMVariant::createFromInt(1));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"`Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>`");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellValue(h,COMVariant::createFromInt(2),"sum(current,dir,dbl(%1))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(2),4/*exTotalField*/);
		com_Items.CellValue(h,COMVariant::createFromInt(3),"min(current,dir,dbl(%1))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(3),4/*exTotalField*/);
		com_Items.CellValue(h,COMVariant::createFromInt(4),"max(current,dir,dbl(%1))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(4),4/*exTotalField*/);
		com_Items.CellValue(com_Items.InsertItem(h,,"Item 1"),COMVariant::createFromInt(1),COMVariant::createFromInt(10));
		com_Items.CellValue(com_Items.InsertItem(h,,"Item 2"),COMVariant::createFromInt(1),COMVariant::createFromInt(20));
		com_Items.CellValue(com_Items.InsertItem(h,,"Item 3"),COMVariant::createFromInt(1),COMVariant::createFromInt(30));
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
789
How can I use the current in the aggregate/total field

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Columns,com_Editor,com_Items;
	anytype var_Columns,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.SortOnClick(0/*exNoSort*/);
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.Indent(13);
	exgrid1.HeaderVisible(false);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Items");
		var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("Quantity"))).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(4/*SpinType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Items");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"sum(current,dir,dbl(%1))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(1),4/*exTotalField*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(1),"`Total: `+ value");
		com_Items.CellValue(com_Items.InsertItem(h,,"Item 1"),COMVariant::createFromInt(1),COMVariant::createFromInt(10));
		com_Items.CellValue(com_Items.InsertItem(h,,"Item 2"),COMVariant::createFromInt(1),COMVariant::createFromInt(20));
		com_Items.CellValue(com_Items.InsertItem(h,,"Item 3"),COMVariant::createFromInt(1),COMVariant::createFromInt(30));
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
788
How can I prevent a specified item to be not included in the aggregate/total function

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	int h,h1;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.SortOnClick(0/*exNoSort*/);
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.HasLines(2/*exThinLine*/);
	exgrid1.HeaderVisible(false);
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Numbers"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(4/*SpinType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Numbers");
		com_Items.CellEditorVisible(h,COMVariant::createFromInt(0),false);
		com_Items.ItemBold(com_Items.InsertItem(h,,COMVariant::createFromInt(10)),true);
		com_Items.ItemBold(com_Items.InsertItem(h,,COMVariant::createFromInt(20)),true);
		com_Items.ItemBold(com_Items.InsertItem(h,,COMVariant::createFromInt(30)),true);
		h1 = com_Items.InsertItem(h,,"not included");
		com_Items.CellEditorVisible(h1,COMVariant::createFromInt(0),false);
		com_Items.CellValueFormat(h1,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellHAlignment(h1,COMVariant::createFromInt(0),2/*RightAlignment*/);
		com_Items.SortableItem(h1,false);
		h1 = com_Items.InsertItem(0,,"sum(all,rec,dbl(%0))");
		com_Items.ItemBold(h1,true);
		com_Items.SelectableItem(h1,false);
		com_Items.CellValueFormat(h1,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h1,COMVariant::createFromInt(0),"`Sum: ` + value");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
787
Is is possible to specify which items/cells/fields to be included by the aggregate/total function I am using

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exgrid1.Items().SortableItem(_Item,false);
}

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.SortableItem(_Item,com_Items.CellState(_Item,_ColIndex));
	exgrid1.Refresh();
}

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.TreeColumnIndex(-1);
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.SortOnClick(0/*exNoSort*/);
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Check Numbers"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(4/*SpinType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellHasCheckBox(com_Items.AddItem(COMVariant::createFromInt(10)),COMVariant::createFromInt(0),true);
		h = com_Items.AddItem(COMVariant::createFromInt(20));
		com_Items.CellHasCheckBox(h,COMVariant::createFromInt(0),true);
		com_Items.CellState(h,COMVariant::createFromInt(0),1);
		com_Items.CellHasCheckBox(com_Items.AddItem(COMVariant::createFromInt(30)),COMVariant::createFromInt(0),true);
		h = com_Items.AddItem("sum(all,rec,dbl(%0))");
		com_Items.SelectableItem(h,false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"`sum on checked items : ` + value");
	exgrid1.EndUpdate();
}
786
Can I display multiple total/aggregate functions such as sum, min or max, into a single cell (method 1)

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.TreeColumnIndex(-1);
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Numbers"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(4/*SpinType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(10));
		com_Items.AddItem(COMVariant::createFromInt(20));
		com_Items.AddItem(COMVariant::createFromInt(30));
		h = com_Items.AddItem("sum(all,rec,dbl(%0))");
		com_Items.SelectableItem(h,false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"`sum: ` + value");
		h = com_Items.SplitCell(h,COMVariant::createFromInt(0));
		com_Items.CellValue(COMVariant::createFromInt(0),h,"min(all,rec,dbl(%0))");
		com_Items.CellValueFormat(COMVariant::createFromInt(0),h,5/*exTotalField | exHTML*/);
		com_Items.FormatCell(COMVariant::createFromInt(0),h,"`min: ` + value");
		h = com_Items.SplitCell(COMVariant::createFromInt(0),h);
		com_Items.CellValue(COMVariant::createFromInt(0),h,"max(all,rec,dbl(%0))");
		com_Items.CellValueFormat(COMVariant::createFromInt(0),h,5/*exTotalField | exHTML*/);
		com_Items.FormatCell(COMVariant::createFromInt(0),h,"`max: ` + value");
	exgrid1.EndUpdate();
}
785
How can I use the index of the item in total/aggregate functions, rather than root or parent

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_Editor,com_Items;
	anytype var_Column,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.TreeColumnIndex(-1);
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Numbers"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(4/*SpinType*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Idx")); com_Column = var_Column;
		com_Column.FormatColumn("0 index ``");
		com_Column.Width(24);
		com_Column.AllowSizing(false);
		com_Column.Enabled(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("3 Numbers");
		com_Items.ItemHeight(h,0);
		com_Items.SelectableItem(h,false);
		com_Items.InsertItem(h,,COMVariant::createFromInt(10));
		com_Items.InsertItem(h,,COMVariant::createFromInt(20));
		com_Items.InsertItem(h,,COMVariant::createFromInt(30));
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("sum(0,dir,dbl(%0))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.SelectableItem(h,false);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"`sum of first three numbers is ` + value");
		h = com_Items.AddItem("3 Numbers");
		com_Items.ItemHeight(h,0);
		com_Items.SelectableItem(h,false);
		com_Items.InsertItem(h,,COMVariant::createFromInt(15));
		com_Items.InsertItem(h,,COMVariant::createFromInt(35));
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("count(5,dir,dbl(%0))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.SelectableItem(h,false);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"`count of next two numbers is ` + value");
	exgrid1.EndUpdate();
}
784
How can I have a better view of what current, parent, all, dir or rec means in total/aggregate fields

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Editor,com_Items,com_Items1,com_Items2,com_Items3;
	anytype var_Editor,var_Items,var_Items1,var_Items2,var_Items3;
	int h,h1;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(1/*exGroupLinesAtRoot*/);
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Numbers"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(4/*SpinType*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("");
		com_Items.CellValue(h,COMVariant::createFromInt(0),"sum(current,dir,dbl(%0))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"'sum of <fgcolor=FF0000><b>Direct</b> children: '+value + `</fgcolor> using <a>sum(current,dir,dbl(%0))`");
		com_Items.ItemForeColor(com_Items.InsertItem(h,,COMVariant::createFromInt(10)),WinApi::RGB2int(255,0,0));
		com_Items.ItemForeColor(com_Items.InsertItem(h,,COMVariant::createFromInt(20)),WinApi::RGB2int(255,0,0));
		com_Items.ItemForeColor(com_Items.InsertItem(h,,COMVariant::createFromInt(30)),WinApi::RGB2int(255,0,0));
		com_Items.ExpandItem(h,true);
	var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
		h = com_Items1.AddItem("");
		com_Items1.CellValue(h,COMVariant::createFromInt(0),"sum(current,rec,dbl(%0))");
		com_Items1.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items1.FormatCell(h,COMVariant::createFromInt(0),"'sum of <fgcolor=00FF00><b>Leaf</b> chidlren: '+value +`</fgcolor> using <a>sum(current,rec,dbl(%0))`");
		com_Items1.ItemForeColor(com_Items1.InsertItem(com_Items1.InsertItem(com_Items1.InsertItem(com_Items1.InsertItem(h,,COMVariant::createFromInt(100)),,COMVariant::createFromInt(10)),,COMVariant::createFromInt(10)),,COMVariant::createFromInt(1)),WinApi::RGB2int(0,255,0));
		com_Items1.ItemForeColor(com_Items1.InsertItem(com_Items1.InsertItem(h,,COMVariant::createFromInt(200)),,COMVariant::createFromInt(2)),WinApi::RGB2int(0,255,0));
		com_Items1.ItemForeColor(com_Items1.InsertItem(com_Items1.InsertItem(h,,COMVariant::createFromInt(300)),,COMVariant::createFromInt(3)),WinApi::RGB2int(0,255,0));
		h1 = com_Items1.InsertItem(h,,"sum(parent,direct,%0)");
		com_Items1.CellValueFormat(h1,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items1.FormatCell(h1,COMVariant::createFromInt(0),"'sum of <b>Parent Direct</b> children: '+value +`</fgcolor> using <a>sum(parent,direct,%0)`");
		h1 = com_Items1.InsertItem(h,,"sum(parent,rec,%0)");
		com_Items1.CellValueFormat(h1,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items1.FormatCell(h1,COMVariant::createFromInt(0),"'sum of <fgcolor=00FF00><b>Parent Leaf</b> children: '+value +`</fgcolor> using <a>sum(parent,rec,%0)`");
		com_Items1.ExpandItem(0,true);
	var_Items2 = exgrid1.Items(); com_Items2 = var_Items2;
		h = com_Items2.AddItem("");
		com_Items2.CellValue(h,COMVariant::createFromInt(0),"sum(all,rec,dbl(%0))");
		com_Items2.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items2.FormatCell(h,COMVariant::createFromInt(0),"'sum of <fgcolor=FF00FF><b>All (leaf children)</b>: '+value  +`</fgcolor> using <a>sum(all,rec,dbl(%0))`");
	var_Items3 = exgrid1.Items(); com_Items3 = var_Items3;
		h = com_Items3.AddItem("");
		com_Items3.CellValue(h,COMVariant::createFromInt(0),"sum(all,all,dbl(%0))");
		com_Items3.CellValueFormat(h,COMVariant::createFromInt(0),5/*exTotalField | exHTML*/);
		com_Items3.FormatCell(h,COMVariant::createFromInt(0),"'sum of <fgcolor=FF00FF><b>All (children)</b>: '+value  +`</fgcolor> using <a>sum(all,all,dbl(%0))`");
	exgrid1.EndUpdate();
}
783
Do you have any Fit-To-Page options when printing the control

public void init()
{
	COM com_Print,com_rs;
	anytype rs,var_Print;
	;

	super();

	exgrid1.ColumnAutoResize(false);
	exgrid1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	// Add 'exprint.dll(ExPrint.dll)' reference to your project.
	// Add 'ExPrint 1.0 Control Library(ExPrint.dll)' reference to your project.
	var_Print = COM::createFromObject(new EXPRINTLib.exprint()); com_Print = var_Print;
		com_Print.Options("FitToPage = On");
		com_Print.PrintExt(exgrid1);
		com_Print.Preview();
}
782
How do I hide the selection

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.MarkSearchColumn(false);
	exgrid1.SelForeColor(exgrid1.ForeColor());
	exgrid1.SelBackColor(exgrid1.BackColor());
	exgrid1.ShowFocusRect(false);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Format")); com_Column = var_Column;
			var_s = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=000";
			var_s = var_s + "0FF>+'+(value format '2|.|3|,' ): '0.00') )";
			com_Column.FormatColumn(var_s);
			com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(10));
		com_Items.AddItem(COMVariant::createFromInt(-8));
	exgrid1.EndUpdate();
}
781
How do I access the cells, or how do I get the values in the columns

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	int h;
	;

	super();

	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item 1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"SubItem 1.1");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"SubItem 1.2");
		print( com_Items.CellValue(h,COMVariant::createFromInt(2)) );
}
780
I am using the FormatColumn/FormatCell to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ClearItemBackColor(0);
		com_Items.ItemBackColor(com_Items.SelectedItem(0),WinApi::RGB2int(128,255,255));
}

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.MarkSearchColumn(false);
	exgrid1.SelForeColor(exgrid1.ForeColor());
	exgrid1.SelBackColor(exgrid1.BackColor());
	exgrid1.ShowFocusRect(false);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Format")); com_Column = var_Column;
			var_s = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=000";
			var_s = var_s + "0FF>+'+(value format '2|.|3|,' ): '0.00') )";
			com_Column.FormatColumn(var_s);
			com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(10));
		com_Items.AddItem(COMVariant::createFromInt(-8));
	exgrid1.EndUpdate();
}
779
How can I get the number of columns being shown in the control's SortBar part

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.SortOrder(true);
	print( exgrid1.Columns().SortBarColumnsCount() );
	exgrid1.EndUpdate();
}
778
How can I add a header and footer for grouping items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int h;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.InsertItem(_Item,,"");
		com_Items.SelectableItem(h,false);
		com_Items.CellValue(h,COMVariant::createFromInt(6),"min(parent,rec,dbl(%6))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(6),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(6),"`<font ;7><b>Min</b>: ` + value");
		com_Items.ItemPosition(h,0);
		h = com_Items.InsertItem(_Item,,"");
		com_Items.SelectableItem(h,false);
		com_Items.CellValue(h,COMVariant::createFromInt(6),"max(parent,rec,dbl(%6))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(6),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(6),"`<font ;7><b>Max</b>: ` + value");
}

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(true);
	exgrid1.EndUpdate();
}
777
How can I add a footer for grouping items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int h;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.InsertItem(_Item,,"");
		com_Items.SelectableItem(h,false);
		com_Items.CellValue(h,COMVariant::createFromInt(6),"sum(parent,rec,dbl(%6))");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(6),5/*exTotalField | exHTML*/);
		com_Items.FormatCell(h,COMVariant::createFromInt(6),"`<font ;7><b>Sum</b>: ` + value");
}

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HasLines(0/*exNoLine*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.SortBarVisible(true);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(true);
	exgrid1.EndUpdate();
}
776
How can I handle the event for the inside controls

// ItemOleEvent event - Fired when an ActiveX control hosted by an item has fired an event.
void onEvent_ItemOleEvent(int   _Item,COM   _Ev)
{
	;
	print( _Ev );
}

public void init()
{
	COM com_Columns,com_Grid,com_Grid1,com_Items,com_Items1,com_Items2,com_Items3;
	anytype var_Columns,var_Grid,var_Grid1,var_Items,var_Items1,var_Items2,var_Items3;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.ScrollBySingleLine(true);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.ExpandItem(h,true);
		h = com_Items.InsertControlItem(h,"Exontrol.Grid");
		com_Items.ItemHeight(h,256);
		var_Grid = COM::createFromVariant(com_Items.ItemObject(h)); com_Grid = var_Grid;
			com_Grid.LinesAtRoot(-1/*exLinesAtRoot*/);
			com_Grid.ScrollBySingleLine(true);
			var_Columns = COM::createFromObject(com_Grid.Columns()); com_Columns = var_Columns;
			com_Columns.Add("C1");
			var_Columns = COM::createFromObject(com_Grid.Columns()); com_Columns = var_Columns;
			com_Columns.Add("C2");
			var_Items1 = com_Grid.Items(); com_Items1 = var_Items1;
				com_Items1.CellValue(com_Items1.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),COMVariant::createFromInt(2));
			h = com_Grid.Items().AddItem(COMVariant::createFromInt(3));
			var_Items2 = COM::createFromObject(com_Grid.Items()); com_Items2 = var_Items2;
			com_Items2.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
			var_Items2 = com_Grid.Items(); com_Items2 = var_Items2;
				com_Items2.ExpandItem(h,true);
				h = com_Items2.InsertControlItem(h,"Exontrol.Grid");
				var_Grid1 = COM::createFromVariant(com_Items2.ItemObject(h)); com_Grid1 = var_Grid1;
					com_Grid1.LinesAtRoot(-1/*exLinesAtRoot*/);
					var_Columns = COM::createFromObject(com_Grid1.Columns()); com_Columns = var_Columns;
					com_Columns.Add("Inside-Inside");
					var_Items3 = com_Grid1.Items(); com_Items3 = var_Items3;
						h = com_Items3.AddItem("item");
						com_Items3.InsertItem(h,,"child 1");
						com_Items3.InsertItem(h,,"child 2");
						com_Items3.InsertItem(h,,"child 3");
}
775
How can I specify the position of the item manually (Method 2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Child 3");
		com_Items.AddItem("Child 2");
		com_Items.AddItem("Child 1");
		com_Items.ItemPosition(com_Items.ItemByIndex(0),2);
		com_Items.ItemPosition(com_Items.ItemByIndex(1),1);
		com_Items.ItemPosition(com_Items.ItemByIndex(2),0);
}
774
How can I specify the position of the item manually (Method 1)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h1,h2,h3;
	;

	super();

	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h3 = com_Items.AddItem("Child 3");
		h2 = com_Items.AddItem("Child 2");
		h1 = com_Items.AddItem("Child 1");
		com_Items.ItemPosition(h3,2);
		com_Items.ItemPosition(h2,1);
		com_Items.ItemPosition(h1,0);
}
773
Is it possible to open second inside grid in inside-grid

public void init()
{
	COM com_Columns,com_Grid,com_Grid1,com_Items,com_Items1,com_Items2,com_Items3;
	anytype var_Columns,var_Grid,var_Grid1,var_Items,var_Items1,var_Items2,var_Items3;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.ScrollBySingleLine(true);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.ExpandItem(h,true);
		h = com_Items.InsertControlItem(h,"Exontrol.Grid");
		com_Items.ItemHeight(h,256);
		var_Grid = COM::createFromVariant(com_Items.ItemObject(h)); com_Grid = var_Grid;
			com_Grid.LinesAtRoot(-1/*exLinesAtRoot*/);
			com_Grid.ScrollBySingleLine(true);
			var_Columns = COM::createFromObject(com_Grid.Columns()); com_Columns = var_Columns;
			com_Columns.Add("C1");
			var_Columns = COM::createFromObject(com_Grid.Columns()); com_Columns = var_Columns;
			com_Columns.Add("C2");
			var_Items1 = com_Grid.Items(); com_Items1 = var_Items1;
				com_Items1.CellValue(com_Items1.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),COMVariant::createFromInt(2));
			h = com_Grid.Items().AddItem(COMVariant::createFromInt(3));
			var_Items2 = COM::createFromObject(com_Grid.Items()); com_Items2 = var_Items2;
			com_Items2.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(4));
			var_Items2 = com_Grid.Items(); com_Items2 = var_Items2;
				com_Items2.ExpandItem(h,true);
				h = com_Items2.InsertControlItem(h,"Exontrol.Grid");
				var_Grid1 = COM::createFromVariant(com_Items2.ItemObject(h)); com_Grid1 = var_Grid1;
					var_Columns = COM::createFromObject(com_Grid1.Columns()); com_Columns = var_Columns;
					com_Columns.Add("Inside-Inside");
					var_Items3 = COM::createFromObject(com_Grid1.Items()); com_Items3 = var_Items3;
					com_Items3.AddItem("item");
}
772
Computed field concatating strings values to calculated values. Is there something we can change this

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	;

	super();

	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("A");
		com_Columns.Add("B");
		COM::createFromVariant(com_Columns.Add("Sum")).ComputedField("dbl(%0) + dbl(%1)");
		COM::createFromVariant(com_Columns.Add("Concaternation")).ComputedField("str(%0) + str(%1)");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(21)),COMVariant::createFromInt(1),COMVariant::createFromInt(22));
}
771
Is it possible the Items.FormatCell or Column.FormatColumn to use values from other columns

public void init()
{
	COM com_Columns,com_Editor,com_Items;
	anytype var_Columns,var_Editor,var_Items;
	;

	super();

	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("A"))).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(4/*SpinType*/);
		COM::createFromVariant(com_Columns.Add("B")).FormatColumn("currency(%0)");
		COM::createFromVariant(com_Columns.Add("C")).FormatColumn("%1 format ''");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1));
		com_Items.AddItem(COMVariant::createFromInt(2));
		com_Items.AddItem(COMVariant::createFromInt(3));
}
770
Is it possible to do un-grouping the items

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
	;
	exgrid1.Ungroup();
}

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarHeight(24);
	exgrid1.HeaderHeight(24);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	exgrid1.ReadOnly(-1/*exReadOnly*/);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.Alignment(1/*CenterAlignment*/);
		com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
		com_Column.SortOrder(true);
	exgrid1.EndUpdate();
}
769
How can I change the visual aspect of the links in the sort bar

public void init()
{
	COM com_Column,com_Column1,com_rs;
	anytype rs,var_Column,var_Column1;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarHeight(24);
	exgrid1.HeaderHeight(24);
	exgrid1.BackColorSortBar(WinApi::RGB2int(240,240,240));
	exgrid1.BackColorSortBarCaption(exgrid1.BackColor());
	var_s = "gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpAA";
	var_s = var_s + "WL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABjE";
	var_s = var_s + "ovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.Alignment(1/*CenterAlignment*/);
		com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
		com_Column.SortOrder(true);
	var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(5)); com_Column1 = var_Column1;
		com_Column1.Alignment(1/*CenterAlignment*/);
		com_Column1.Def(4/*exCellBackColor*/,COMVariant::createFromInt(16119285));
		com_Column1.SortOrder(true);
	exgrid1.Background(28/*exSortBarLinkColor*/,0x1000000);
	exgrid1.EndUpdate();
}
768
Is it possible to display no +/- button for grouped items

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.Alignment(1/*CenterAlignment*/);
		com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
	exgrid1.EndUpdate();
}
767
How can I remove the extra information that grouped items display

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(6)); com_Column = var_Column;
	com_Column.AllowGroupBy(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.GroupByTotalField("");
		com_Column.GroupByFormatCell("");
	exgrid1.EndUpdate();
}
766
How can I change the label, caption or the formula of the grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exgrid1.Items().ItemDividerLineAlignment(_Item,3/*DividerBoth*/);
}

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	exgrid1.Refresh();
}

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ScrollBySingleLine(true);
	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(6)); com_Column = var_Column;
	com_Column.AllowGroupBy(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.GroupByTotalField("sum(current,rec,%6)");
		com_Column.GroupByFormatCell("'<font ;11>' + <caption> + '</font> <fgcolor=808080>( Freight: ' + currency(value) + ')'");
	exgrid1.DefaultItemHeight(28);
	exgrid1.EndUpdate();
}
765
How can I change the aspect of grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	int l;
	;
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.ItemDividerLine(_Item,0/*EmptyLine*/);
		l = com_Items.GroupItem(_Item);
		com_Items.CellSingleLine(_Item,l,false);
		com_Items.CellBold(_Item,l,true);
		com_Items.CellBackColor(_Item,l,0x1000000);
}

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	int l;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ScrollBySingleLine(true);
	exgrid1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	exgrid1.TreeColumnIndex(-1);
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	var_s = "gBFLBCJwBAEHhEJAEGg4BKoCg6AADACAxRDAMgBQKAAzQFAYcBuGiGAAGMZhWgmFgAQhFcZQSKUOQTDKMIziaQIRDEMw5SSNIxyAK0QBkAqNQCkKKwIgmNYDSBMYABBI";
	var_s = var_s + "MBwiGQaRJnegYRDUMJCQjRVITVLMNoXDKZIyqEAHfpWVJWSLHcIhDBJUjcOYyTiOQrzCK8dB0G6bIrGEZpYRAPwEYDIIjbQhqFYDChCNLwHScEAxC4kLhnKK6Vb9d6HY";
	var_s = var_s + "hiOJYXhmDrfR7IMhyLI8QafFqXZhmOZZXizPY9T7QNB0LQ8eZbJqnahqOpaOx2W5dV7YNh2LTWGzXNq3bhuOzLbrme59X7gOB3RZeE4XRrHchxKq8XxnG6dZ7oOTUXof";
	var_s = var_s + "FOK5WmudQTh2LpfHOO5em+doSh4LwfhOS5mnGIw9D6LxfjOW5unSIQ+D8L4flOa5yD2fg/D+L5fnOe54ByigGAKAJgEgBBrgGYIICYCoCmCSAcGOA5hAgRgSgSYQBGoF";
	var_s = var_s + "oFmGCBmBqBphGESgegeYgIgYIoHkSKIWCaCZigiJgqgqYhog4LoLmGSJGDKBZhEiVg2gMY4ImYCIBGOSJ1n6D5kAeZZ2hCZBHj4RoRl6J4eEqEpeAkNhOHaXYJEYUh0G";
	var_s = var_s + "USRVkwchlgkZZChaZZGnWOoXmYBpOGKGJamaLhmhmWhJiYahnlmSY2G4ZZZEmRhyGMZxJlWCBhFCFgWHaHpYkmSh+GSJp6AWG4amgRoOGeIZahmEoKGyJgKDWOIXGkBw";
	var_s = var_s + "GFmJJcHkWoWHQJQqGWVoTmmRx+EuJ5eFkIoiHuJBKhWdIQGqB52D2KpgDiaougMIxqyODJrEgbgvi2YgYjKOoumKSpij4FIrFsBg0iyLBKj6RoOmqSwmimMpkCqGpOii";
	var_s = var_s + "bQJCaII0mmWxWFCJotgoXpahWaRLHaEY3mWag6mKIpuEmFoIjmaBbiYbIgi6RhaH+O5Onmcpyh2VYAAEASAg";
	exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exgrid1.DrawGridLines(1/*exHLines*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
		com_Column.GroupByFormatCell("'EmployeeID: ' + <caption> + '<br><font ;7><fgcolor=808080>Count: ' + value");
	exgrid1.EndUpdate();
}
764
How can I remove or change the line it shows for grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	exgrid1.Items().ItemDividerLine(_Item,0/*EmptyLine*/);
}

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	exgrid1.EndUpdate();
}
763
Is it possible to determine whether an item is regular or a group by item
// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	int h;
	;
	h = exgrid1.ItemFromPoint(-1,-1,c,hit);
	print( exgrid1.Items().GroupItem(h) );
}

public void init()
{
	COM com_rs;
	anytype rs;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	exgrid1.EndUpdate();
}
762
How can I collapse all items when the user performs a grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int   _Item)
{
	;
	exgrid1.Items().ExpandItem(_Item,false);
}

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	exgrid1.EndUpdate();
}
761
Is it possible to select columns that user can drop to the sort bar, when using the Group By feature

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("<fgcolor=FF0000>Try to drag the EmployeeID column here.");
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.AllowGroupBy(false);
	exgrid1.EndUpdate();
}
760
How can I enable the Group By support, with no sort bar

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SingleSort(false);
	exgrid1.AllowGroupBy(true);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.SortOrder(true);
	exgrid1.EndUpdate();
}
759
Does your control support Group-By feature

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.SortBarVisible(true);
	exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
	exgrid1.AllowGroupBy(true);
	exgrid1.EndUpdate();
}
758
How can I restrict a field to number only (Method 3, Float)

public void init()
{
	COM com_Editor;
	anytype var_Editor;
	;

	super();

	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Numbers")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Editor.Numeric(1/*exFloat*/);
	exgrid1.Items().AddItem(COMVariant::createFromInt(12));
}
757
How can I restrict a field to number only (Method 2, Integer only)

public void init()
{
	COM com_Editor;
	anytype var_Editor;
	;

	super();

	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Numbers")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Editor.Numeric(-1/*exInteger*/);
	exgrid1.Items().AddItem(COMVariant::createFromInt(12));
}
756
How can I restrict a field to number only (Method 1)

public void init()
{
	COM com_Editor;
	anytype var_Editor;
	;

	super();

	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Numbers")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(8/*MaskType*/);
		com_Editor.Mask("###.###");
	exgrid1.Items().AddItem(COMVariant::createFromInt(12));
}
755
Is it possible to include only leaf items ( items with no childs ) in the drop down list

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(1315/*exShowFocusItem | exShowCheckBox | exSortItemsAsc | exLeafItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
754
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Item")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.Filter("Child 1");
		com_Column.FilterType(240/*exFilter*/);
	var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("Date")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.DisplayFilterPattern(false);
		com_Column1.DisplayFilterDate(true);
		com_Column1.FilterList(9474/*exShowExclude | exShowFocusItem | exShowCheckBox | exNoItems*/);
		com_Column1.Filter(str2Date("12/28/2010",213));
		com_Column1.FilterType(4/*exDate*/);
	exgrid1.FilterCriteria("%0 or %1");
	exgrid1.Description(23/*exFilterBarOr*/,"<font ;18><fgcolor=FF0000>or</fgcolor></font>");
	exgrid1.Description(11/*exFilterBarAnd*/,"<font ;18><fgcolor=FF0000>and</fgcolor></font>");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.CellValue(com_Items.InsertItem(h,,"Child 1"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.CellValue(com_Items.InsertItem(h,,"Child 2"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.CellValue(com_Items.InsertItem(h,,"Child 1"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.CellValue(com_Items.InsertItem(h,,"Child 2"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/30/2010",213)));
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
753
Is it possible exclude the dates being selected in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(9474/*exShowExclude | exShowFocusItem | exShowCheckBox | exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	exgrid1.EndUpdate();
}
752
How can I display a calendar control inside the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1282/*exShowFocusItem | exShowCheckBox | exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	exgrid1.EndUpdate();
}
751
Is it possible to include the dates as checkb-boxes in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Dates")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1280/*exShowFocusItem | exShowCheckBox*/);
		com_Column.Filter("to 12/27/2010");
		com_Column.FilterType(4/*exDate*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
750
How can I filter items for dates before a specified date

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Dates")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1026/*exShowFocusItem | exNoItems*/);
		com_Column.Filter("to 12/27/2010");
		com_Column.FilterType(4/*exDate*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	exgrid1.ApplyFilter();
	exgrid1.EndUpdate();
}
749
Is it possible to filter dates

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Dates")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1026/*exShowFocusItem | exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	exgrid1.EndUpdate();
}
748
Is it possible to change the Exclude field name to something different, in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Description(25/*exFilterBarExclude*/,"Leaving out");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
	exgrid1.EndUpdate();
}
747
How can I display the Exclude field in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
	exgrid1.EndUpdate();
}
746
Is it possible to show and ensure the focused item from the control, in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(1280/*exShowFocusItem | exShowCheckBox*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.SelectItem(com_Items.InsertItem(h,,"Child 2"),true);
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
745
Is it possible to show only blanks items with no listed items from the control

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(16386/*exShowBlanks | exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
744
How can I include the blanks items in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(16640/*exShowBlanks | exShowCheckBox*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
743
How can I select multiple items in the drop down filter window, using check-boxes

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(256/*exShowCheckBox*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
742
Is it possible to allow a single item being selected in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(128/*exSingleSel*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
741
How can I display no (All) item in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Description(0/*exFilterBarAll*/,"");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.FilterList(2/*exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
740
Is it possible to display no items in the drop down filter window, so only the pattern is visible

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.FilterList(2/*exNoItems*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	exgrid1.EndUpdate();
}
739
How can I show the child items with no identation

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.Indent(12);
	exgrid1.HasLines(2/*exThinLine*/);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
}
738
Is there other ways of showing the hierarchy lines (exGroupLinesAtRoot)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(1/*exGroupLinesAtRoot*/);
	exgrid1.Indent(12);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
}
737
Is there other ways of showing the hierarchy lines (exGroupLinesOutside)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
	exgrid1.Indent(12);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
}
736
Is there other ways of showing the hierarchy lines (exGroupLinesInsideLeaf)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(4/*exGroupLinesInsideLeaf*/);
	exgrid1.Indent(12);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
}
735
Is there other ways of showing the hierarchy lines (exGroupLinesInside)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(3/*exGroupLinesInside*/);
	exgrid1.Indent(12);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
}
734
Is there other ways of showing the hierarchy lines (exGroupLines)

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(2/*exGroupLines*/);
	exgrid1.Indent(12);
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(com_Items.InsertItem(h,,"Child 2"),,"SubChild 2");
		com_Items.InsertItem(h,,"Child 3");
		com_Items.ExpandItem(h,true);
}
733
Is it possible to display a column with buttons when using exCRD format

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Columns,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Columns,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.DefaultItemHeight(36);
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Column1")); com_Column = var_Column;
			com_Column.Visible(false);
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Column2")); com_Column1 = var_Column1;
			com_Column1.Visible(false);
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Column3")); com_Column2 = var_Column2;
			com_Column2.Alignment(1/*CenterAlignment*/);
			com_Column2.HeaderAlignment(1/*CenterAlignment*/);
			com_Column2.Visible(false);
			com_Column2.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
			com_Column2.Def(3/*exCellButtonAutoWidth*/,COMVariant::createFromBoolean(true));
		var_Column3 = COM::createFromVariant(com_Columns.Add("FormatLevel")); com_Column3 = var_Column3;
			com_Column3.FormatLevel("(0/1),2:64");
			com_Column3.Def(32/*exCellFormatLevel*/,COMVariant::createFromStr(com_Column3.FormatLevel()));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Cell 1.1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 1.2");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Cell 1.3");
		h = com_Items.AddItem("Cell 2.1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 2.2");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Cell 2.3");
	exgrid1.EndUpdate();
}
732
How can I change the check-boxes appearance

public void init()
{
	COM com_Appearance,com_Column,com_Items;
	anytype var_Appearance,var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
	var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		com_Appearance.Add(1,"XP:Button 3 12");
		com_Appearance.Add(2,"XP:Button 3 11");
		com_Appearance.Add(3,"XP:Button 3 10");
	exgrid1.CheckImage(0/*Unchecked*/,16777216);
	exgrid1.CheckImage(1/*Checked*/,33554432);
	exgrid1.CheckImage(2/*PartialChecked*/,50331648);
}
731
Is it possible to disable the cell's editor context menu
public void init()
{
	COM com_Editor,com_Items;
	anytype var_Editor,var_Items;
	;

	super();

	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Edit")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		com_Editor.Option(202/*exEditAllowContextMenu*/,COMVariant::createFromBoolean(false));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(10));
		com_Items.AddItem(COMVariant::createFromInt(20));
}
730
How can I find a value in a drop down editor

public void init()
{
	COM com_Editor,com_Editor1,com_Items;
	anytype var_Editor,var_Editor1,var_Items;
	;

	super();

	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("DropDownList")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(3/*DropDownListType*/);
		com_Editor.AddItem(1,"DDList 1");
		com_Editor.AddItem(2,"DDList 2");
		com_Editor.AddItem(3,"DDList 3");
	var_Editor1 = COM::createFromVariant(exgrid1.Columns().Add("DropDown")).Editor(); com_Editor1 = var_Editor1;
		com_Editor1.EditType(2/*DropDownType*/);
		com_Editor1.AddItem(1,"DDType 1");
		com_Editor1.AddItem(2,"DDType 2");
		com_Editor1.AddItem(3,"DDType 3");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),exgrid1.Columns().Item(COMVariant::createFromInt(1)).Editor().FindItem(COMVariant::createFromInt(1)));
		com_Items.CellValue(.AddItem(COMVariant::createFromInt(2)),COMVariant::createFromInt(1),exgrid1.Columns().Item(COMVariant::createFromInt(1)).Editor().FindItem(COMVariant::createFromInt(2)));
}
729
What is the difference between DropDownType and DropDownListType

public void init()
{
	COM com_Editor,com_Editor1,com_Items;
	anytype var_Editor,var_Editor1,var_Items;
	;

	super();

	var_Editor = COM::createFromVariant(exgrid1.Columns().Add("DropDownList")).Editor(); com_Editor = var_Editor;
		com_Editor.EditType(3/*DropDownListType*/);
		com_Editor.AddItem(1,"First item");
		com_Editor.AddItem(2,"Second item");
		com_Editor.AddItem(3,"Third item");
	var_Editor1 = COM::createFromVariant(exgrid1.Columns().Add("DropDown")).Editor(); com_Editor1 = var_Editor1;
		com_Editor1.EditType(2/*DropDownType*/);
		com_Editor1.AddItem(1,"First item");
		com_Editor1.AddItem(2,"Second item");
		com_Editor1.AddItem(3,"Third item");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),"Any");
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(2)),COMVariant::createFromInt(1),"Any");
}
728
How can I add or change the padding (spaces) for captions in the control's header

public void init()
{
	COM com_Column;
	anytype var_Column;
	;

	super();

	exgrid1.BeginUpdate();
	COM::createFromVariant(exgrid1.Columns().Add("Padding-Left")).Def(52/*exHeaderPaddingLeft*/,COMVariant::createFromInt(18));
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Padding-Right")); com_Column = var_Column;
		com_Column.Def(53/*exHeaderPaddingRight*/,COMVariant::createFromInt(18));
		com_Column.HeaderAlignment(2/*RightAlignment*/);
	exgrid1.EndUpdate();
}
727
Do you have any plans to add cell spacing and cell padding to the cells

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Padding-Left")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(18));
	COM::createFromVariant(exgrid1.Columns().Add("No-Padding")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	COM::createFromVariant(exgrid1.Columns().Add("Empty")).Position(0);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("Item A.1"),COMVariant::createFromInt(1),"Item A.2");
		com_Items.CellValue(com_Items.AddItem("Item B.1"),COMVariant::createFromInt(1),"Item B.2");
		com_Items.CellValue(com_Items.AddItem("Item C.1"),COMVariant::createFromInt(1),"Item C.2");
	exgrid1.EndUpdate();
}
726
Is it possible to change the height for all items at once

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.Columns().Add("Items");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
	exgrid1.DefaultItemHeight(12);
	exgrid1.Items().ItemHeight(0,12);
}
725
Can I display somehow the filter just on the top of the list, with an editor associated to each column

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	COM com_Column;
	anytype var_Column;
	;
	print( "Locked:" );
	print( exgrid1.Items().IsItemLocked(_Item) );
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(_ColIndex); com_Column = var_Column;
		com_Column.Filter(_NewValue);
		com_Column.FilterType(3/*exPattern*/);
	exgrid1.ApplyFilter();
}

// MouseUp event - Occurs when the user releases a mouse button.
void onEvent_MouseUp(int   _Button,int   _Shift,int   _X,int   _Y)
{
	;
	exgrid1.Edit(exgrid1.Items().LockedItem(0/*exTop*/,0));
}

public void init()
{
	COM com_Editor,com_Items,com_rs;
	anytype rs,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.ColumnAutoResize(false);
	exgrid1.ScrollBySingleLine(true);
	exgrid1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,2);
		h = com_Items.LockedItem(0/*exTop*/,0);
		var_Editor = COM::createFromObject(com_Items.CellEditor(h,COMVariant::createFromInt(0))); com_Editor = var_Editor;
		com_Editor.EditType(1/*EditType*/);
		h = com_Items.LockedItem(0/*exTop*/,1);
		com_Items.ItemHeight(h,4);
		com_Items.ItemDivider(h,0);
		com_Items.SelectableItem(h,false);
}
724
Is it possible to display information about the firing events
// Event event - Notifies the application once the control fires an event.
void onEvent_Event(int   _EventID)
{
	;
	print( exgrid1.EventParam(-2) );
}

public void init()
{
	;

	super();

}
723
How can I change the layout of my columns when using the exCRD

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Editor,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.DefaultItemHeight(36);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Column1")); com_Column = var_Column;
			com_Column.Visible(false);
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Column2")); com_Column1 = var_Column1;
			com_Column1.Visible(false);
			var_Editor = COM::createFromObject(com_Column1.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
		COM::createFromVariant(com_Columns.Add("Column3")).Visible(false);
		var_Column2 = COM::createFromVariant(com_Columns.Add("FormatLevel")); com_Column2 = var_Column2;
			com_Column2.FormatLevel("(0/1),2");
			com_Column2.Def(32/*exCellFormatLevel*/,COMVariant::createFromStr(com_Column2.FormatLevel()));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Cell 1.1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 1.2");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Cell 1.3");
		h = com_Items.AddItem("Cell 2.1");
		com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 2.2");
		com_Items.CellValue(h,COMVariant::createFromInt(2),"Cell 2.3");
	exgrid1.EndUpdate();
}
722
Is it possible to scroll the control's content by clicking and moving the mouse up or down

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	exgrid1.AutoDrag(16/*exAutoDragScroll*/);
	exgrid1.EndUpdate();
}
721
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	exgrid1.HTMLPicture("p1","c:\\exontrol\\images\\card.png");
	exgrid1.HTMLPicture("p2","c:\\exontrol\\images\\sun.png");
	exgrid1.AutoDrag(11/*exAutoDragCopySnapShot*/);
	exgrid1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	exgrid1.HasLines(2/*exThinLine*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.DefaultItemHeight(26);
	exgrid1.Columns().Add("Task");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("<img>p1:32</img>Group 1");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.ItemDivider(h,0);
		com_Items.ItemBold(h,true);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h,,"Task 2");
		h3 = com_Items.InsertItem(h,,"Task 3");
		h = com_Items.AddItem("<img>p2:32</img>Group 2");
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
		h1 = com_Items.InsertItem(h,,"Task");
		com_Items.ExpandItem(0,true);
	exgrid1.EndUpdate();
}
720
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

public void init()
{
	COM com_Column,com_Items,com_rs;
	COMVariant var_HTMLPicture;
	anytype rs,var_Column,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gCJKBOI4NBQaBQAhQNJJIIhShQAIERFQIA0RAYGLriiIEM5BJpBiIARYlMBNhQPLhJIhBKhoQLlTTLV4la5VYx/fZVOoee7de62drYdI4YIWcIteIQEbEEAzCghEwIRI";
	var_s = var_s + "ZKSmJD8EIZMzARgZKYmEAmDISYgEAISIJKdg4JzSOK7bp9b73HiqezeNYxLD7Th7N67dpmQSQIZJUpzVRqT46PY9Xy1yL2Qz/c6HXbzHoAKYgWrzC7tZDtLgBOpzOajQ";
	var_s = var_s + "ApWDXZwOdABb6eHa+fCHMTCB7AMo7S6AIxMcADcAIfHEe6AQ7/G7zfhfHqeAb/AJ8B6TfITMAVGLrd4Db78aY/fydH77axfPjjS5fP7tcLMY6EOYed4dbyHcwHCoHfAI";
	var_s = var_s + "CCApOHEDgcA+OAnACAJgBya5jAoLh5hCc4OGcQ47GeQIBneNoGHaTI5kAKxOHuHAzjGXp5mwAZgnyNB/nCPh9g+ABinGYA1kmGYAAqThjgGQRwHiThPC8Vhfnma5/ngX";
	var_s = var_s + "Zvn8ew7keQBfmOUAYCIBj7ngbY/nqS4/nkDYzieXwLn+dp+j+EpiE8CAAEKNwZFOTZ3FCOpgHyRQHkCcAJmUDRzgEHwhAYHoRAGHxADuCAxAeDxOAcHA3jmRw4guaoam";
	var_s = var_s + "cbZMAwM4EDWTkNgGqQqHYPJEDmKhrDwB4QmcKAsgkcQGGQHBLiYfBGjcCESFATIID0KgDjgBJ3hGVQVk4JZqHcbpklef58g+fwFScd09j+AwnECWY0FeEIBFmdIyAsZ4";
	var_s = var_s + "fHyEIRB6Ch4F8UZLDWdQ5CAAheEOTAxGmWgDhqYIaEGO4AgiAYNm8RhwACKo4HaCgviCHptB4Uo9ACAQlFsG5rEINAFh4WpxAQRAqE4QAlGARJGjmLw2EYfAdk8DIomY";
	var_s = var_s + "GJKjISY5AiChKGYIg/EMUg7iEGZ7B8GABn4Do0jYWRVASMgiGoLwTHMdJKEkaI9CaZwej6H85mcCAGlwBQfFoH4bFyJgEAOdRBBCEoSC4ZpUAOOpwBURBbieeYzEeKwI";
	var_s = var_s + "AOJQAFSVABp6U5Kg+PhvkGex8HAOJnE2ZgPF4WY1kQHALiic54lcYYQiAQ55g6VQbHMdZfjyF4PCYTTLkaAQGCadRIE0VImlQLQgm0EhalsNYMkgHRMDKHpiGoEYmlAR";
	var_s = var_s + "pZDQYQMiECYzHwQhEHCKZOmOVZ+mMJYgFqIRgBYVoLCmXgHlAaoeCUYJKgcU4IneHoQiIQR5kIDBEBiGhMDoHgL4CQ/BiBeEIOILgRBaBwL8fweAZiZGaNEWoYBwjuBS";
	var_s = var_s + "AAOoiASBECMJwG44Qih6EEDMcIRBmCyBcPQRgwwBCRECJgPQ+h0gRBCDQZYNwXjwB8FAVYvQsC8BSKYWy+BvABC8DwSobAghSAEOoFgjGKAVEeJCA4oBxDZB2PwWQCWq";
	var_s = var_s + "gQAkCEAgfA4D2HSB0PwEwsBdCICkBoKgIjVAEFcD4gw8D0CsAEXwnQtgFBoAUPIahmiICANQRwWgjCDGKAsbwEBaCjEozkWQDhECcCiMsIAjBIiQBMAYA4DRUCMBsCkY";
	var_s = var_s + "A+xaCFESG8P4LwBCqGqIQOgiRtASESIYOA+xmAnCoIUYo1QJhiE4BIAT+REghVkG0SwcgnCbAEJoI44QoCnFQFQCgjx0BdCSG8XIzQegFc0KgbIJgWgkDUBkOIrgEicC";
	var_s = var_s + "OKAM4HBwDnA+JkIQXg9jYBmJ1SI3w4hxDsIYNQzxnDeEUPkZwIQfAaFcE0LQmwsAtEsEYAo8BXCjCsEAAYLggDQEIOQYIsBWgeFSBkEo4A+iPBQIQGAIQ8AIBCBEPowB";
	var_s = var_s + "DjQCkKQAAHhoiMBGFEWoggFDqEkBkIA7RcjKDwNcAYthjh9AeBAIoKhCDUDaD0YIewUAlFiFoRqrBlhVGOHoAoXw9ADH0H4cA2RZieFmAsZAQwnitHgPoS4RhfDyEqHM";
	var_s = var_s + "aQcAhiaHoAQa4gwDCzCEB4GISgIgACeM0DIHwQi0AZAkOIGgoCfFQncQ4ZhcgqHYB8HwagsCPGaOoZwAhQATHGAwKgcAAiVGMjsSIihRBcFeK4CILQ7hjGAMsCoUBSgi";
	var_s = var_s + "EANMYg1RiiCAoKAd45wuCeDMK4VwYAbA3AQDgIwchDCUD2EIdAqA8gkCuAsSgXQZCcFeFcM4jAxhPHYOYZgdxHChAwCwJQhQ4hMB4H8SwKAKgeA4MMfwQQRV9qGPcGwU";
	var_s = var_s + "QDjOBOGoDwUA9BWBuJ8CEIxlh7G+MgKgxRciEEkHERo9hUBWWIJURgqhRA4CoEsJYjxXhQAAKKoY8R6DjGYLMaYjgMAgBKKgAQwQ7jcBYGAP4Fx9TnE8MMOgAhDiHFgF";
	var_s = var_s + "gYAcAFA7F2DATYdxGCjCCGcWIgBzinAWI4R4MxZh5FEMgEIVwrgzCUPESgIhCCYCwP4CgPg/DiASDEQIwhnBuBIMYIQ6g9X2D2GYOYmxTD3AcB8CQ3hbh4FaGoHI3gkj";
	var_s = var_s + "7HIE4awEAiAtAaCkXwxQSBAH6CsEAgBhi5BSMscoihug5HxmgLgZQFhYAqKYGIMRPgvCwCwFgqh9gwFOOQAoKg4D8pm2UOIeQOAAHwOgEYWBXA7BcC4I4tBHDgBlkoQ9";
	var_s = var_s + "5x7hJFaN4OgwRbgAHWPEYIcw6gFFqEYUwUxnhsB8DITYGQciaHeL0bIKBZADAoG0CgFxWioDuGYNolQLAEAWkEagowVCs2SFAeIWBzD7A5NwC4kAuB4DgAQWYqRuj7GS";
	var_s = var_s + "AoQwDCtgZH0OQCYGBjgOAiDgbAzxmBmDgHzjQQBvh3k+CwS4PR1jRHEMcNgAhLgXGMCsPgGAsguGeBkQ4cxTDzCGKYWYfQpDwCoAoRQZwzguA4B4BrVhsA7HhycDIpQj";
	var_s = var_s + "hrDCHkeoiR4gLDQIQYIXAtMfD6EAdQaBrMBEiLEJIFAoAdCiBEKgow8jNHOCqwgrhMi+A2PEMIThWiZFcIMaoCBIhEGSJkTgOwhCAFGAcBIRxvCmBqIcLIvwrC4FyIEd";
	var_s = var_s + "YBRqDaEiEcRAYRBi/GcFIc4OBJDLCmNYVYGwzdGBMNMDIqgYC2DyO8dwQQLgHCWLsJwEB4hIHGNkVwWRvreAiI0LQKwRDZGwKAVgUQGD7AcEEUgIAnBQFEI0f4XAEO6G";
	var_s = var_s + "sHADoaBSDkEKE0DQwwoCuBMMwQYBx4DwAIEoDwjQOBYhUgNhGAGBwgWB9gCADhXBZhkBfgtAAgFApBNhKABAcuohnAPhphug6B2B3BehghyAghRArAWBgAjBghDhPApA";
	var_s = var_s + "ZF1DsB4hjAlBUBFBEhThiheArAFhVBtB1BIhuBiAHgUALBMgXhXg/hGAqAggbAuB+hZgKgQHdBSgTAxA2A1AfBDhigRBAgyBzApgFhAAjh9goAlhvBSBsArACsBgshAB";
	var_s = var_s + "BhNgVgphqBvBAg8higxA0hPhoghhkgNgcBaBtBRhhBdBHB2B2AeBQgFgRhxh4ADAYgsgtBWBahchdBgB6h8gjgTBMABgIgghqh0AXAcAJhtBEAQAVBigZBMh5hUAKBNg";
	var_s = var_s + "uAKAph+BVgQBYBglUBUgKgbAOhZgEgOAOhghygagOAOAgAlARhRA5hOByAWh6g6p/gugChjAAhrABhWBDBHA6hDByBtgaBeg8hpATBVvSg2vRgDhSAHJxvQA+AhB4A5h";
	var_s = var_s + "JB3h0gzgjhUAEBagFAnhPg/g2BUhIqJhchGA3hUgJBmh8BIAmAAgnB4BnBxhegjgMgtAyhsgphVheAdADA+O2hAhzB4AQBxA+AzAsABhpBYgBATBuhOheB1BshTBNBZg";
	var_s = var_s + "5gsBWAWAnBWALBYBUAOwAh0gTARhoB4segWBrg4A/Awhgh5h6Bch4hFhRghgFhSAjgjhwAshYBcAfAhh1AgAkAeg3geh5A8G2BSh6gHAAAVBnAghGBQBdA3A+gEAggMg";
	var_s = var_s + "fhqgth4BQlMBXgGBBA3BJgxhZg0g7BVhEBhB/A3AxBahlBWP0g7BMh0h9BiBoh/AkBvhMh4AqnwABhjAWh0hEBUgCgjh2gUA1gcAdBAhOgOhMAmBggZh5BjA1gOgtBQh";
	var_s = var_s + "3h2hWBCg2gLgpAVsNBWhnAUBZhAhfBvgRhCAwASh6hbAUgyBihJBEBwA6gmh4BggBBSBBAygABghEgIgWAaBQB3BKgFAYBRAQAFBggig0BGgFAIg5hYhKBwB5BlAYBeg";
	var_s = var_s + "PAwAuA6h2B3hhhnA+ASBiBGA5g4BYADgYhGBUBBhVhNhcgispBFA4A/hnhyAFhnAEBKH9hjh6gNBnAnAwgfB1gMhjhAh0hmBsAwBWhQAsBygshDAChYhNhZguB6AuESB";
	var_s = var_s + "eB+gXB+ByABg3gugVgeAvg9g7hwBBgPh3z/AmATBYA/gsBshthngrBlBZhiBCgugaBeAFABBnA2h4hWAtB3BcBnBWghAxA1g/BCACBFgahKAFA+hrgIimgXAIhhBkBgh";
	var_s = var_s + "AhihCwVArhshvA4h+AwASAChAAHAqhVgVoTB5B1gIoOAxBBBphzgegbgFgcAeB2BggMgWA1BDBWB4BxgHgLAmMrBrB1gHAUgdgeA9BdgJEbhDgfhNAQhah5B7AXhWhIh";
	var_s = var_s + "dByAjh3gCgpB2Acg+hvB5hzBLhLhSBnB0BdhfBSBfqRgNhVAFAQhMB1hrhNAEhQhY1SB0ANAxgxA7gDg7A7gwBWAMg+BRB1hmBxApAjhlhtg6ADBAhdA8g8hZBpArBGA";
	var_s = var_s + "NBFhTA2g3hQhLBIhshWBxhggQgmA9g8B/BeBxzzh/AXh8JCgDAqAdglAMg8B+AJhMBnBwB0BgggAPAjhrBFgThqA4gigPADgiAVASudB6gJBUhAgtAwB3h4BFFxhwBhh";
	var_s = var_s + "7hQhyAhBnAlh6ASgOh/B9gFBIBrA8g6hbh2hWgrBmgpA1BjB9gkAmAWgAALBMA7g4A6AABnA6hLACglBjBChCAVBth9Atg1BTB3gGhZhhg0BrhvBNhJBSBvAzBTBjgnh";
	var_s = var_s + "wBTgPhhBig8hjsJBIgRBKhPBJAjgXAXoYgPAHAHgABrhRhoB8U0B5BzBGBqhxBFAVAYBGAVg5BUhqAtAMhrgFhzAdgbhSAqA8B7AKAlAvB4gJANB4AxALAoAiVhpxBkh";
	var_s = var_s + "qBZARBiAUgZBXBbAvKRARAzhFgGg9hdhMhshmAMARAMAIh5BnBeAgA6AyAdAMhUi4BeBPhsBMqrgzhJh3BdAchRARhXBYhhAYg7guAuhGAEBzAchLgrhYBeAMosB0AUB";
	var_s = var_s + "8hNBygmhnquAbgbgOgHAVhaA/B6AvBvgwBthRhdBwB9h/g3A4BEhohdBgh3h/gwA3BHge0eg4B6BwBLBtg+BHABAOBagzApBNApBOh6gBghB5gBAI4QgLhTAEBMhBgug";
	var_s = var_s + "RgkhnAihOBlgtglhLBNBEg0hFBzBIvEhbhvBYBkB3gugzg+BehNBTg8A3hrhRBjAGhvA/BqBwhuBkBigygjgkAOgugbg5A+gGhpgkhnhkghh1gvAdAzhWhdBLBWAoAMh";
	var_s = var_s + "4BYhbg3AqAZBHhBBjhiB/ACBqgPBjhADNAfh+hoBdAtgpAfgmhCh3gghgANBIg2BegABQAaAXg0AHBBBLAxAYM0AiBXg6gyhSgWANhLgzglhRAoBMB6ARgpAWhWg3BtB";
	var_s = var_s + "rR9hAAqg8gLAPtxAZhlgZAjhDgRgHgn1PgEBhgxBiB9hHAHgfgAAI09A1BYhZqNAwAYAHBWklgGBsgIBYhizSB4BMA4g8BjBcLHXkhCjqAIg1AsgwPRhWhsBshcBJBqg";
	var_s = var_s + "EhMhhhBgUg8gsA2gCgHAQhBYYAzBaBAgnBkgAARgRZShpgLANA3BxgChmgVhyBnAmBBADgaBJmrh0iUB+hwB+gzB+h2gyA9hRhigdAIA+BHhkAkgtnMgAhehShtAHZzB";
	var_s = var_s + "RgUidgqNYrtR1hThggtAEAfAohiBCBOA6AjA4gyhZgHA4ATg3BsB6g2hytDhPQwhjD5gLAVp+BDBsATgppBBkgMhzgdoOP+YahHB0BBW7gHBHAdBDB6hkB4gEhqAdB4B";
	var_s = var_s + "yBRhPBbuqBLBrACAPB/g2BwBmhbhPBQgWg2h/B2BhgJhvA+B6AGBzhwB+AGOkAJhSB6B0All2BUgaB0BtAtBEgkBjAbgbAUBJBbh7rOgyh9h2A7B2A+gzhtACAmBaZ1B";
	var_s = var_s + "qh6BWgWgmgrAMvbBdgLALgjAOA0gdsEBfhlgLAhhrA1hcBcBYAzhaggAUgoAjBxgQhpBVBoBJBsgXBzBqI4gLgTgGB1gJgHBHgNApg+gkgLA8BQgjhqAaBqBpBQA1guh";
	var_s = var_s + "5gWg6BNB/hEhvArhkBlhdBWgbBDA9gxgbAChuAjAcA2hSh6ATBWgkglhPhNgKAEhOgug1hxB0AEA3BXBmhRQRAZBrgBApBPg2g8hCgaByhUE8BUhKhwBHvMhKhwhrAPA";
	var_s = var_s + "9h4g8A0gYhaBMhqAzhvA/h4hwhlgDA/hrBQh7g1gDBcAug4AogAhSAhgbh6hiAjAQg1BXB+h9B1gjBKBdACBageBxh0hpgJgOATgUATBwBJhPhPhwAeh6ApzQgnA8B2g";
	var_s = var_s + "lgegVBhgrAgg9AlgChbgZhHAXhvBsAuBeA2ArhiA7BoBFgHgvgZBsBIgvBVAMA1gxgAhtA2hfg3geBkAlB1BYrbhbgKhzBbBUhEpeMhgOhnA+hGg7hvBQhWgwBGhSB3A";
	var_s = var_s + "1heB5h3AahUhvhahtBvgGhQAOgRBhhbAtg6gDgBA2gEhjBtTmA2gMgshvOYB8h4B8BVgLAig+g1AGhChtheBdgIh0B3AZgYB5B5gUgCg8BBhghFglBdAHhLg8ccBaghg";
	var_s = var_s + "ShvB0hwAhBWgxglhlgNgkBSArA612tcg6gZhrBLUohIgZBQZVAWFNh1h/BVhyBNhNgGAKA2BTgkAAhtgQhZBsgdB5BPhvh8hNhfh9h9A3g+h5gNhfhdAdB9B+h0Ahg2B";
	var_s = var_s + "mgiBYhGgGhYB2hUh8gIAthHhXA2hEB4BbB0E5haBwAOBvAjgxgvBtgTBFhjg8hHhqA5A/gmA2glhxg2gJhDAWhKhsg5BLgChrhth9n6giAVgwhhhnhOg0hlBuh8h3O1g";
	var_s = var_s + "6h5gdg5gPhzgOhZAvBKg/h9EuB+AXhwAEg4TXBIhUgHAtgTA/AOg8AJh8ARhwBrhsAaABA/hYhHBFAEh/gXhgA9pRk8BjA8g7hAgxg2A3hoAIhbAsg1BFAUhxBFhfAoh";
	var_s = var_s + "VAAhFAAhZh+AphwAYhbAzg0BsXwBcBugUhbBhh2g7Acgt5fhxAPhBAwg/AEguW/hgAkBBhgBzA0Bdg3faBwBFg3h+hmhYh4hBfSgxg5h1A/gBheADASgcAKg/gJAjCRg";
	var_s = var_s + "kgignAiBXAhAwBBCAg==";
	exgrid1.HTMLPicture("p1",COMVariant::createFromStr(var_s));
	var_s1 = "gCJKBOI4NBQaBQAhQNJJIIhShQAFUREQIA0RFKQJY2iIJOBILJzhQOYkjYgBSorBwbhQKJ5pIZDKBQNBvOhvOc1OAgJMxEBwORvMxpNhlhR4bSdKZnKhTdIWHr3bz0IR";
	var_s1 = var_s1 + "LRCAShLN5SCoIEBSISLQAUSImFQhBIQJSIEKhbIVKLBCJFIoEDbIUCIAaORyARlwFgMRQKbAHcghUSOQajRCKZT7cJ7UZray8e7mZr+WrXHznVjzTqzZ4HYAIBiWJAzK";
	var_s1 = var_s1 + "I1QAMVJCDwRcCDY7EYzhcguICBBQkOAACAIWZkEJzfojAIAfB+Hg8FYiYAHXwAAJ4aYLBAAYBNTbAGAcQ7/B7qISZLgBQCEALAOiRHBLBFjABAPSOISm+ZG9CdTAmKYA";
	var_s1 = var_s1 + "FAAgADAZYxjEcYACgFsBhOP5zGmABAE6fBMj25ItkoEIKgCUBIgAEAJjKRAiAANAdgAVhnisRQigALAYAACgzCWYgcgAbEFhgJIrjMJAAFgW7tGcCAFlkADTAAGAokQQ";
	var_s1 = var_s1 + "oUgAAg9wGZARhGPAAEITMYiMeQrh4eIVlcCBzomAA8EyWQeFyEgciKQItgQFo4gOK4rhcDwUGcJILhWCgbDCAQwk0IAXGEPJMgyGRAhoB5wHmZiFQ6CrZEGeZ+jwZwHF";
	var_s1 = var_s1 + "cZxnBsRxbAcL4WnUX4DH+EQxQOfxymeVY4CAhRwjoPxon8FgXlmDRAB2AxADafxRBKdwCDQLwFlAOp7kWMxZAeIBawAdJtCueY4OW5oilCSBcmybJynIchsCUYghC2MJ";
	var_s1 = var_s1 + "lCuPp/DOYQvmAK5+jYfLmH4e56nAXxxBIQIZC6QIjgIfBwGEZh6CYUoOGeSQEkIMRuHMR4jn4W4Fn+fgOmmERiCSMRciwFQKHGKIJDiRwiE0Rh5hkUoRESIRJBSYoSmk";
	var_s1 = var_s1 + "f4yHEb4WH2AYfG+GsfjUHwAj2SIWlQLoxgGewlhOCAsDoYBxHuhR5F2N5gmoFAEAGQA0EGcJnjuf53h+fojlAEsIjMJJJDihQvCIEgXCoZRZh+Y7sgAIhQECFRYCCDZ6";
	var_s1 = var_s1 + "GCDAWGAAwOGCApuGCBZ+DAGxCCEEhiGEIQICEBQyEADg5DAFJWEEIQUEMZpYA6FQwBeaggA6GhgCiNBDEmOAHUIKpcAcHo4AefQwgQTxghQXhAgSAggmQBAJjCEJtEQA";
	var_s1 = var_s1 + "IxEULARkcBALkyQp8BCYIkAICRFhIEBkkQCgohEJZIhqJAYikRQqBAKokA6eQejkAQckOLgjF0SIdmQAAZEEPwQwvAjgxEoIEWQUQejUAYLUIYuRUA3A0IQIwogFjQDI";
	var_s1 = var_s1 + "HQGImhHgWFAJsaAchaAaB6IwGwoRzjQFWGgB42hHg+CGMcGAwB0AYAODMYgbAYAuGMMMIQsQcAsASJMMYyxYgiFYAwVYxgNCwCsKwAYuxEj1DGM8WId3tiBCKMABINgC";
	var_s1 = var_s1 + "B3CECAMIHgghICwEwLAThsBIFQCADgJAaARG0AkG4CQBiECiMIE4IhJioCWLQEwugIj5GIBgMQMgYiHCwEgFgIxrASEeBMF4EA9iICGMQG4JAJCJCGDIE4uRIACCSLEU";
	var_s1 = var_s1 + "gVBpASGkEYaQbgpAjHSCwVImwaBIA0CMSYyRtBkDWLIA4ORKAsBACsZAhRyCdHIMMcgMxyAbMOPILYChOhiCAHEUg+ApjiBQFIZQaglAZHKBAcoNBygGDKJgGQQQqijE";
	var_s1 = var_s1 + "0FIboqBQhUAiDUR4WghCtFCLYKQrwoiHFQBMGgdRNA5GaIMCwSQlilFaKISo0wNBoAuGge4aRXjoDpIAbolQPBOEuNAK40hljpCOOgS46ABj0DuAwBohgKm0EQGcFAGR";
	var_s1 = var_s1 + "Nw0AwGcDIdwMCvEwEwUwGRpiLAyMcKgMAbgxHWJgc4mQHiZDeFVjwtgVB8AqJEZQChKhKEqCYSoGwVAvCoKkVQphVDeFUAsKo8wqjLCoI8VIXgph9FcEYKoMwpjjFSAk";
	var_s1 = var_s1 + "aglhVhVFUJ0KA6wpgbKWKkHYqBDiqDOKgN4VAfikD8FkfoiQDBZGGEwYYTwhikCiKAWIXxxi8GMCABYYwMizDwCwEIawGirEMHUQINRiAmFiM0bIfA7AqF2JgfoHRdiL";
	var_s1 = var_s1 + "B6KoVIoQchDBmEoGYVxZhSHmJQMwPwDjjEwHEfAnA6BOASOcFApxLjzD8IobwFB3gpHECkDYpgaBMFyDEMoXA1iqEsJcSwWBVhIFWFEVYRx1i9BsK4dopxOimF6EUXYW";
	var_s1 = var_s1 + "R9iBAcEEY4SgThcBOEcM4jxnAFE6OcKY2QpjdFOAoU4Fgmg9B0PUVwLhVBrFKBsUIuwiB3F+G4U47hMCeF8F4QAngmBvFON4PIvRzj6A4H0F4/QqD9DaPoU49QjgMCwA";
	var_s1 = var_s1 + "YWYDASAGG2AwZwGAeDFBqHEN4PAOgvGONseIUQhhdGGEAIYpQwiVDCJccIhBIi5GiDwUY1QjCNCMA8RgaRjBcHGCQcYbRjZ4FGCYAwJgQgmCWE0dQTR3TpCaLkUwKRTA";
	var_s1 = var_s1 + "7CZowY4zRmDNFEM0awmQaibB6DEa4Mhzib06NcTY3xbhgC0HgLQLBbCoFsLgMoSRZDkC0KYLI7hbC8DcIULQOQsilCwFULQXRZhGFaJ0VoJRrC7FaLsU4ERTi5CcJMJw";
	var_s1 = var_s1 + "qxPDWDOMMWA8RbDJFsKkW4GRYDlGxkoVwtg2i2D6GEM4YgLhnFuMUVwwx3CTF6JMPoug+iNH6D0A4DRDjZAcKsDoWgOh+DmLQOQFAdBWB0N4TQzhODuB+H0Yo9BLDpBe";
	var_s1 = var_s1 + "GcLAzwIDPGwDMcYtgJjLBSMQNJShNjTwVusXIc1KCIEWIkJYghlguEuD4FwmwNjGG6MgXo5AlB0HqHELo4Q9DSHqJ0TYsxNjCHaKgbYrx3A2HcGkdwhxuCfGYDQT4KRP";
	var_s1 = var_s1 + "BZBmHMaAwxkBDHAFEco0QfgLE+JUGAaxvisD9ZQJ4gQzi1HOCMF4YwXiRCuK0a6QBSh3FUPcMI7wLg+HsD4OQnxxg+HGDwG43gZDeCyF8ZgNxgC3GQLcZYTxhhvE8F8Q";
	var_s1 = var_s1 + "o3whh/BGzQf4eh/jRAAKcQAJQAhnAGIkQIQU3ACH2PgPQfAQi/EcD8HQ2wyj2FkNkdoQRGCgFyEECoQRHiCFaIIcowRWghDQMgdgkPqj3HOJgZwkRnBpAcIUKAfh0DWG";
	var_s1 = var_s1 + "gAcMI5gwiLGGH4BgJxCiHEKFcQwPxHBwEQFgDQ0QYhLgag7hohuAhg5hvgiB9AiBLAiBvBNgzgYgngchXgWglAagVAfBVAXA1AeBtAbhdAaBdAfhjAXAzAshmBqgsBOg";
	var_s1 = var_s1 + "sAkg2AlgOAcgXAVBXAbA3A2BfBvh+B2h5hDhxBOhxAFhxg9gLhMAXhkAug4A8hQhnBhB6BCsLhUgXAJAWAdBLAgAmBEAnAcBKB4AggIAVBUALBGASh5AJg7gShHAFA8h";
	var_s1 = var_s1 + "hAOhhAzgRAXhogbBohEBsAhguAVKLh5AkAVAmg9BJB2BIheAag8gSBigZhSgWByhchCAThUhIBeAmAGgmBuhNgdBPALBNA7AQA2gZMNBegYhBhJBIhIA4ghBVAQgmhJh";
	var_s1 = var_s1 + "bAzh1AzhzAzA7BlhWAyhChZB/Big3BFhbgXgPBKgDhkg1hZhIBWACgsgWgFBbD7h0AqAtAUBrgVADhZAzgykeBfhmhEhlAcq7BPAVhmh2hmBZhlBthIAbhOB3hPh/h2g";
	var_s1 = var_s1 + "JBhAJBwhJBbBShDAlgrgWgOgsBzBehWA1Ack0A4g8htgFBxgKgCgVhDArADBWAeBcBFKmA2hqgnhVh2grhLhXA/BegTA9Amg1hAgvBghlBBBghagAg1h1qxAFByhCg+h";
	var_s1 = var_s1 + "1huBrh2gugngsAXgshvhagwh9BDBOgNgfAKhEhFBXAKBtgLhLgKg/hsAUBuA8BygNhDg3hlBfhMhuBKBaBUhVhiBcgyBngzBpAzB0hzBvAWhPAtgHBLBVBLhzBLgHA3A";
	var_s1 = var_s1 + "GhshtBaAGhvgrBaB2h6h7AihtgXhLhmgUBthdhBhbIGhRhfyFBeAyhThkhnBmgdgfgqJRh6AqB9AqOpBpBuyahrh8A3Boh3ANg9heB7AaB2BqhtgtjLB+gfBkhfBtgqg";
	var_s1 = var_s1 + "AgqgmhqgzBqgyh9gkh9hZh7gfhXBEhVB0h8BLB9g2guhWgnA2g4h2hjgBhpABh+gDgRgHBbBrhchqBqgOhpAegqApBHhrAVh1gjgHBjgPhfB/BOh3g7gWgGgbAGgqhGh";
	var_s1 = var_s1 + "OBjBxARg4AiA8hyB0h7gEhvh7gPAGgdBtA7BGA9hWBwgDhpgPg7AOgzsqg1AhBNB5BNAjBNgphNB9gtgxAthdAnhmAfBohrB1BvA9B+AjhtgPgHhOAaAeAsg8glB5gqB";
	var_s1 = var_s1 + "kg0htB0hBBphJgzh5BnhGBOhKhOg+g/AXB8huAwBthRBbA9hzgxhnBvg1AHg3h3hdAIA6BwhpAih/hFhzgdheAdhnAuB5BcA6B5BZBthygJgrhcArhNBXgdAvg2h1A6B";
	var_s1 = var_s1 + "1AeB/BJhpgnhjhdhOBdhNBXBcr0Bch3A9Behag9gzB7h0gNhPAbhnBuh6Beg8h4gLB/hrBqhPAcgehuheh5g9A3h7hil6hvgLBug/A5ATh+hnBlhdhsg7gTh3BWheAnh";
	var_s1 = var_s1 + "eAvh6AgPjhsghhuhDhqgfgth/BuBsB3huA/g1BgA7hQB5wBgjh7gDBChBhnh/BIh6hHgHghgChHhMhHhlhDKTh1hPAcAfAcgchxAfg5B+h0h+BTghhnysATBPALlfh/B";
	var_s1 = var_s1 + "lhXALgLAXg/B8Bqh1hrhnBohMBohQhLh5BLhJhfg2g+BSh+h1BgB1gMhXhthjBhBjAPBfBkg8AZgYgvB6ArB9h2hgg7huA7gOh3hRhvgHgnhyA+AQA/gUB/g0B8hYh6g";
	var_s1 = var_s1 + "phoBTh9hJgMhJhJh/gCABhMB5h+AxgZgWhtiIgCAzgggmggiFBYhHA+B9gohJiIgQAxgkApAmiFA9GzkIhBiFB8h/iFBAB0iFA6kYAAB1AwCFAdBMCFALg3hJAvhigjC";
	var_s1 = var_s1 + "FAFh9AkgiAggqCkBWBMAshHguhjg4hjh/15Bsh3AZB7hnAGBDghg1AiBMgtCQBZASgtycBigkBIALh9gSg3gghfAgAfAkhfAkAIByASggBADqBBAWAgB5AIACBEAxAlh";
	var_s1 = var_s1 + "bAygWhqM8hDBRAcAZhOB6g3Azh0hWh5AYKaBpAItWg4gBhCg9hABBhth+h1h/quMOgxAzB+BygvjjhfBlAwAIBWA6AUA6gFhUAfBFBzALAKg6AEBGAvAIgzB5AVhnAyA";
	var_s1 = var_s1 + "ngChRhuBag1hnhUh029AQh6hKxyhoh9g8BzgOh4A1grgZguB/hnANh8Bbg/g/ANgigjAIAihHBTBKhlhMgEh1BwAmhUBqAAASAPBWh7hxhfh8BtgjhngFBvgwAYBEBKB";
	var_s1 = var_s1 + "GAAATi5ABA2gWhshEhSAlBMg6gfBChOh7g3puANoXhJgYB2ArgMAHHyBggGAxATA+BZh4haggFDhBBEACAIh6hzA9gtA0BQhZJWhxh9gbhMhMhBhkBIBjhSBthzBgg7B";
	var_s1 = var_s1 + "ogvgLhbAch2g1BIgFAtBvhYBaA+gMBhAwBVAxhwAQAkBNASBEBnh7AGBABMggAiB/g3goAlAIAIBBEKBxAqAzBNBSA6Apg9h2AKBXgFBIhlguBzgUhqBJBlgogmBXAUh";
	var_s1 = var_s1 + "CgahPB9A9AgAehlA+rahPh2APh5hkg4gvg+gYBcgbA2hxgjgigRB1gqgpALBWg3BaAQAxASArAZGMgEAiglh5BXgEg9BbAigJAaBWAPhIBmgShKgqgUhqg6AfhFhnB1g";
	var_s1 = var_s1 + "ZAWA6A2AyBPA9BigQBFgjhehUBegRgbgXhahmhWgaBYgHgihcgJAugJheAFhIB5h6AuA9BLhqhXAZwQgLB7h8hMgpgqhrh9BlA4ANAJg6g4hSgYB8WMhYBDBfBbBRBzh";
	var_s1 = var_s1 + "/gIBGACBOglg6h4h0BrhSh1gvgFhCBbBpA/BPBsglAKhfBMgygRBpAVA8BfAMhBgkA2grhNgbBrANhJAtgVhzBVMVhPAdAxgahxgwA5AdAYBqgoA9gpBnB9gCh3hvBPB";
	var_s1 = var_s1 + "Wg2BGh6BfBbtKBlBAAMh5kBBiB0hYhSg/gdgUAAgcAHgegogUALAvAGgyBb3VhVBehNhxg7A2gehyAcgugmBYgPAYBmg9hujAgxgtAuAig9o/BzhZgwhDAwSBhEg0hLB";
	var_s1 = var_s1 + "hAeA3BihvB4AQAChahWgVgwhqhlAUAmTbB9yUBmhGgFgUh9BEg5hehXBqhrg+APBvArACAoBqAehnh+BqgKBSg5gxgTAogMBTg9xxAIABhzBygYAqg6AZAUAzBdhShnh";
	var_s1 = var_s1 + "6AoBCh7BSkZAR0+h9hqhFg9B9U+Agg3heg/g6gmhMBeABAgBEBvAwgfBPh+ByA4A/h7iagIgfgmArBvAegcA4B/g0h9heh1hdBhBkhhhRg3A3A9gVhpF0hXhxhJg9S8B";
	var_s1 = var_s1 + "xg1hDg9hvA8OKhbhBBpBxhYAjAihkgWBSBFhogGBiA6AkBfBhhqAKA3ByAHBfANsEq8BThvhchaBcB+hpgVgthx6ZBigf2shHhghhG8AzgZhSBEAoh6BcBuBnBjhFgDh";
	var_s1 = var_s1 + "7g/heB5h0hOgPhuBWB2gFBXg+h3hWhhhOh2hPhMh/BzA8BKgfA/AjB8hLALhiglg7gRIpBfhbhQBTB4gWBCB8AlBFBBAghiASBUAaB5hOBBhbgmgKAMBEh9AsglBJhvA";
	var_s1 = var_s1 + "khGBdAcBfB/hJg3hkhugfg/B4hDhXhyBzBhAyniB4BVADBEgHASTegmgIhEgRAUAHh0Augshjhlh1gyhbA7A1h9gnhvhfB4gvhVhFhFhrhTA1g7B3htgTAzADgJh4hmB";
	var_s1 = var_s1 + "ngJgJA2APA6gyg9BaBohLhvADhxBThA8aBIASgmhSgnAugbA3glAXASgqAwhhgYBaA2hTBthsg5g9A4h4BjAqg5h/gnhXB/h4AahFhVBHgQBzggBTAQhGABBIgeApgKA";
	var_s1 = var_s1 + "AAcAgg5AABDhABsA7AAABL7g3hwAjhyA/h3h+hBh2gwg4AXh/glgWh5A2g2huBAAKg8hiBDB3APArhagIgFhGB8gQgMBxAlgghEgABIgQA0gMA7h5huBcAFgkhKhehwB";
	var_s1 = var_s1 + "BAGhYh2hCg9BfA/A+g4hxhTsdg0BlhRAHhSA2AAhZALBSAMhIA0g8h+BOg9goABAcBBAqAABUgAB7APAwhogxB2h9AIArhdhnhXhfhZg7h4BIhuAUBbeWgRC9gegmANB";
	var_s1 = var_s1 + "6hEhcBpgDBVeQgnhTBqA5goBYgaARASAQhagogJh6hJBFg+BoBWBkB+hmhYgeA+hqhjh9A5BWA3h/BwBChzgugvhWgzAEAsgBgohshZgMgUABARAACNAoAfABgigBCIB";
	var_s1 = var_s1 + "CADhKADgkhHgaB70tBqgwPDBPh/Boh2hJhxBWhZdohACytSkQAwp26ISCyh0y3IEzO/jeKhUzzASQUjhs510AkmqTSVF24EeTEwf32+XCvWu+0uamI3ECcgEJE+QUkfg";
	var_s1 = var_s1 + "Y8hiRUilnezxA2R0JEcUGS4Xk2mc+Fmhy230eeViTSsZAULFCc2+NRiSgiCRkPFCqDw7CuAigRGSREgbkkoWQEGkzQWnheCj+eGgH3qTwo5RmwCYQBsAmoAW4Ai4AzSa";
	var_s1 = var_s1 + "W4LFaBSkc3sDhawA6iA4yCIJB8wnUyDCSEOLyOqWuwCwAyK2x0n1iNgyOAQRCaX0snkIEBItTAqwgchSyAMhsIGlIw0afmqgRKA34KUgrgGMAAIkA/CYVVCAUky1enwA";
	var_s1 = var_s1 + "9jOwmEAXQADMEA+gmqHlQD3o82S5jS11YhyM3hqujLFwYgjPIURkHEGhTAQLwnH8AiUM8jAAN8CQ0BMLSELcKhrKsTD4DEcy6FgaQ3NImgBCEwA8AM3ANJAfgFFAlwBM";
	var_s1 = var_s1 + "oABSAAyRHB4ChaK4IxyIASwgM0wDxFMIDeAUKxAGYQCuOo0goLUYT7IMCxkHoiwhGUjgFDkKQ2FgtTdBcBgTAMSAMCQJQSAo2RZCsXCRFEWzpNQFA+LYSjCAsEgAAsBi";
	var_s1 = var_s1 + "EAEYDAHEHxEAoJA3AAMQAMgAAQEsLxlAAHhgA8TgTHAuAPMQOSYCscCsCERSEJQST6KYizNMkdAqHUPBhFkTgANkUhwCkBx9CEaACJACCcBwZT+MQXA4DUcCuMcpwxKQ";
	var_s1 = var_s1 + "TgzMsfibHQywBKAqDAHIDDIAIxASIghzgDQAxiAUkjlDIsAIEABCnBoCAzIAawQCIWCWCAaQBCMAQ+IUDyqJM2iQM0qihLQ1RKEgtgGKkGClAkczEEcHznDcfSUBkFAl";
	var_s1 = var_s1 + "PslDFBomT0CoExBFskgSEoCyfHo8zaCsWA1AAcQJIIORTJAzAZBwSQwLsMwVJcCQfEgyxPK95AgO4wBwCAqiQEIixZJ0HydMo5g9G8ZgfMooA+KsUROLQrTaNE0DGBQX";
	var_s1 = var_s1 + "B6OoERKGABCoXIMQ1F0CDkDoLx5MYgQfHYVB9HQcjcHsYzcOYlCMAUtBdqgXSaF4TgnB4lTbGcPjqAAPjPA4BA4IIcCMFkmzhNA9x3KoqjwKUzh7KwTDhJkagFHY7j0N";
	var_s1 = var_s1 + "ARzfD0NSPJ43yHLgiwyCY0zvBAQytGU2yWDo6CYPUpifB8rDtG4TTmJssiyOAmCBFQDhQP4GCwFoZg5AACAAIcsxoD83xAAI4AIFQtzYL8IzZNsyyfDAxQHE48A9MgNg";
	var_s1 = var_s1 + "lgghFFKJkKgTAiAyHiJca4owiBgAkCkdYDg6ipE0EIGQiQnCtA6LACI6hUD5GsI0bonQvhtB8LsBQeByBACiIAJgAQ9AEFWJcWAOBBgkf2AYJACgkCEHIrQGLzRnixGu";
	var_s1 = var_s1 + "D0X4ew4jrBkDEMYsxBjeFeJkD4shYh1EoD4BobAXglC+OINIUQ/juC2BwQoSgmi+G0DgJQhxShYDoCUT4iAwhxH4JwUgtQDg3A+F4Xw1xdh9FwDUPQYQBjeEqIAZQAQo";
	var_s1 = var_s1 + "gCGQEEWAjwmgZGANwAIXBBhBDAMcCADQRhNHsHEfYbhrA8EgBcf4ehaisB8O8M4JRkjpBoFMbo8QUC2A6FMGYnxoBoAQPEUgoAnimFOHMF48AYBeAkJECojRJDJDiEYG";
	var_s1 = var_s1 + "YzRYDTEwK8bonA6DXDOO8Pw/BFg/H2J4bQ3gMC8HwBoQQrxgBcEAHQAIlgLDEA0CAQA2QBhJECOMLIfBUiYAgE8HxywvgeDsLcfoqw/g3G4NgHgcATjzEeE4I49o+jxC";
	var_s1 = var_s1 + "ECUC4Exnh1HgAgUA+hrCHEAJAL4CkaCYGAPAJIAg4BdEMBkPY9AniiA0NYNADxli8HQHcPYiw1h/HmNYPYnx+D5FWO4ToKx1hXC+AcRoxwkBqAAE4fI8haDiFmOgcwGh";
	var_s1 = var_s1 + "pATDQHERQyR7O8D6PMUAuxKheH+PsWgsh9BPCaL0XAXxWhvCMMkawuA0h7CWNoJQpQVDEBIBASAmx/gtAuL8FAPQejmAECEGIpQXApByBMC4DhSivAuDIFgzAlCWC6Go";
	var_s1 = var_s1 + "dQ5gBhbAcC8WoxQPj+GGH8P48hgw0HcLwfI/QzivHaAwQ4lxXDBFYDwA4sgxiAAKNgJoEB1j7EwO4PwjBujbDuOMewUQ7B7FsPofY/xfPWDkNAYIthYD6FQFkUggx/Bm";
	var_s1 = var_s1 + "B+PYBQWwmAOG4MQQ46AkALGgKAf41AFD/A4JIDwVw7DOEGJoXADhrB3D8KAGGAwxDHCgCwAw6xChNDcPIbwIhvj6GyIQKwDw3jcEyLyLAeBZgYHsN4LgsxbDIEQIQeg3";
	var_s1 = var_s1 + "g6srCeE4XovQtibAuN8FYxxhijB4B8HwCB8jgFCAkOAdQWC6CoEoGwVAahcH2NkagzQiivCuP4T4gh8xgH+DgGAExAjnGiLYIwGhNDFHCKESgXidBODuF0bgkRTD3BAJ";
	var_s1 = var_s1 + "ceYbBaBqA+B4Y4zQ7inBoKkR46xiggAmGpZ4MY3h6G2FccQngKg2DUCUe4ZAvAJC6LsaAcQ3iXBmG4KoJBoj6GEB0GwnhujBEoLMAIRQJAEFgPgLQ9x9BlFWAUBIQhog";
	var_s1 = var_s1 + "xCsOsYQBhYjhFuKsYwmRDiVCaMMZIIhOhsY4HcQYjh3gzHKLcfQQwYj0F8GoRYfhbClHkJgaITB3AEEyI4KoRBxCsHkK4YokRWDKAEKcaYtgPBfB0M0JoAx8DIDaJcQ4";
	var_s1 = var_s1 + "vAUDBDSPIRoWwdB8G8HAMQEhqBGf0GIMYNhXC3GaKwW46hHBmA4LYZgTg2AxH8HUMQ8woBnHyIYSg7gkAoGmAkdorBkDsCcCYFINB2jsCIAUHoZBNidBoLIHQyh8jIGM";
	var_s1 = var_s1 + "C4GoCwNB1DaKwMfLhyA2B6K0d48BKh7CeHwLwBgCAmB0OEIIKhrieCSJMaATwrj8GeHsRI3BBg2AaGYaIhwnBajQJECY6QkBCFwJwVI2A7ghYSOsOYrQmhDEyFUNogx9";
	var_s1 = var_s1 + "DUC8J4ZY6QIhtGeC8XQcRPAgEQH8W43QeACCwFIYQfgehIA8JoZIpBTDrFaH8Cy0ApC5EuB4Tg1BQBsB6DcY42hgCWGKGgcIkhJh1GmIQSozRqhuD0DwSYvQIjiBOHsY";
	var_s1 = var_s1 + "YlBVgOAoOMeQ/gjC/C2NAeYEQQ0pCQIkPoPhUC8HGAgY4QQMCjB0O8cwbAFB5GECnoYoh4gOCIL4NY0xOjbD3B4B1BUAmClAyAYDFDLDKDqDrB1BKD/BnAADtCOCxD1D";
	var_s1 = var_s1 + "LZnCEAAgZAABJBFBOBECuBCBgCCEBA==";
	exgrid1.HTMLPicture("p2",COMVariant::createFromStr(var_s1));
	var_HTMLPicture = exgrid1.HTMLPicture("aka1");
	exgrid1.HeaderHeight(24);
	exgrid1.DefaultItemHeight(48);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.GridLineColor(WinApi::RGB2int(240,240,240));
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.ColumnAutoResize(false);
	exgrid1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.FormatColumn("value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Width(112);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(3)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.LevelKey("1");
	exgrid1.AutoDrag(10/*exAutoDragCopyImage*/);
	exgrid1.SingleSel(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.ItemByIndex(1);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(2);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(3);
		com_Items.SelectItem(h,true);
		com_Items.LockedItemCount(2/*exBottom*/,1);
		h = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.CellValue(h,COMVariant::createFromInt(1),"<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ...");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(1),false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(1),1/*exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(1),1/*CenterAlignment*/);
		com_Items.ItemDivider(h,1);
		com_Items.ItemDividerLineAlignment(h,2/*DividerTop*/);
	exgrid1.EndUpdate();
}
719
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	int h;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.ColumnAutoResize(false);
	exgrid1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	exgrid1.DataSource(rs);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(3)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.LevelKey("1");
	exgrid1.AutoDrag(9/*exAutoDragCopyText*/);
	exgrid1.SingleSel(false);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.ItemByIndex(1);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(3);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(4);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(5);
		com_Items.SelectItem(h,true);
		com_Items.LockedItemCount(2/*exBottom*/,1);
		h = com_Items.LockedItem(2/*exBottom*/,0);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ...");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.ItemDivider(h,0);
		com_Items.ItemDividerLineAlignment(h,2/*DividerTop*/);
	exgrid1.EndUpdate();
}
718
Is it possible to change the indentation during the drag and drop

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	exgrid1.AutoDrag(3/*exAutoDragPositionAny*/);
	exgrid1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	exgrid1.HasLines(1/*exSolidLine*/);
	exgrid1.HasButtons(3/*exWPlus*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.SelBackMode(1/*exTransparent*/);
	exgrid1.Columns().Add("Task");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Group 1");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h1,,"Task 2");
		h2 = com_Items.InsertItem(h1,,"Task 3");
		h3 = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		com_Items.ExpandItem(h1,true);
		h = com_Items.AddItem("Group 2");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
		com_Items.LockedItemCount(2/*exBottom*/,1);
		h = com_Items.LockedItem(2/*exBottom*/,0);
		var_s = "Click a row, and move by dragging <b>up, down</b> to change the row's parent or <b>left,right</b> to increase or decrease the in";
		var_s = var_s + "dentation.";
		com_Items.CellValue(h,COMVariant::createFromInt(0),COMVariant::createFromStr(var_s));
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
	exgrid1.EndUpdate();
}
717
Is it possible to allow moving an item to another, but keeping its indentation

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	exgrid1.AutoDrag(2/*exAutoDragPositionKeepIndent*/);
	exgrid1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	exgrid1.HasLines(2/*exThinLine*/);
	exgrid1.ShowFocusRect(false);
	exgrid1.Columns().Add("Task");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Group 1");
		com_Items.ItemDivider(h,0);
		com_Items.ItemBold(h,true);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h,,"Task 2");
		h3 = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Group 2");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
	exgrid1.EndUpdate();
}
716
How can I change the row's position to another, by drag and drop. Is it possible

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h1,h2,h3;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	exgrid1.AutoDrag(1/*exAutoDragPosition*/);
	exgrid1.Columns().Add("Task");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h1 = com_Items.AddItem("Task 1");
		h2 = com_Items.AddItem("Task 2");
		h3 = com_Items.AddItem("Task 3");
	exgrid1.EndUpdate();
}
715
Is it possible background color displayed when the mouse passes over an item

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Def");
	exgrid1.HotBackColor(WinApi::RGB2int(0,0,128));
	exgrid1.HotForeColor(WinApi::RGB2int(255,255,255));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item A");
		com_Items.AddItem("Item B");
		com_Items.AddItem("Item C");
	exgrid1.EndUpdate();
}
714
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Task");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Task 1");
		com_Items.AddItem("Task 2");
	exgrid1.EndUpdate();
	exgrid1.Template("Dim p;p = CreateObject(`Exontrol.Print`);p.PrintExt = Me;p.AutoRelease = False;p.Preview();");
}
713
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

public void init()
{
	COM com_Items,com_Print;
	anytype var_Items,var_Print;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Task 2");
	exgrid1.EndUpdate();
	// Add 'exprint.dll(ExPrint.dll)' reference to your project.
	// Add 'ExPrint 1.0 Control Library(ExPrint.dll)' reference to your project.
	var_Print = COM::createFromObject(new EXPRINTLib.exprint()); com_Print = var_Print;
		com_Print.PrintExt(exgrid1.ExecuteTemplate("me"));
		com_Print.Preview();
}
712
How can I apply the same ConditionalFormat on more than 1(one) column (multiple columns and not on item)

public void init()
{
	COM com_Columns,com_ConditionalFormat,com_ConditionalFormat1,com_Items;
	anytype var_Columns,var_ConditionalFormat,var_ConditionalFormat1,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("1","K1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.BackColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.ApplyTo(1);
	var_ConditionalFormat1 = COM::createFromObject(exgrid1.ConditionalFormats()).Add("1","K2"); com_ConditionalFormat1 = var_ConditionalFormat1;
		com_ConditionalFormat1.BackColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat1.ApplyTo(2);
	exgrid1.MarkSearchColumn(false);
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		com_Columns.Add("Column 2");
		com_Columns.Add("Column 3");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem();
		com_Items.AddItem();
		com_Items.AddItem();
	exgrid1.EndUpdate();
}
711
Is it possible to add new records and see them in the control's view using the DataSource

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	COM com_Recordset;
	anytype var_Recordset;
	;
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	var_Recordset = exgrid1.DataSource(); com_Recordset = var_Recordset;
		com_Recordset.AddNew("Task","New-Task");
		com_Recordset.Update();
}

// Error event - Fired when an internal error occurs.
void onEvent_Error(int   _Error,str   _Description)
{
	;
	print( _Description );
}

public void init()
{
	COM com_Items,com_rs;
	anytype rs,var_Items;
	int h;
	;

	super();

	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Append("Task",8/*adBSTR*/);
		rs.Append("Start",7/*adDate*/);
		rs.Append("End",7/*adDate*/);
	rs.Open();
	exgrid1.DrawGridLines(-2/*exRowLines*/);
	exgrid1.DetectAddNew(true);
	exgrid1.DetectDelete(true);
	exgrid1.DataSource(rs);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*exTop*/,1);
		h = com_Items.LockedItem(0/*exTop*/,0);
		com_Items.ItemDivider(h,0);
		com_Items.ItemHeight(h,22);
		com_Items.CellValue(h,COMVariant::createFromInt(0),"AddNew");
		com_Items.CellHasButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
}
710
How can I initiate an OLE Drag and Drop operation in /COM version

// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.Columns().Add("Default");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
		com_Items.AddItem("Item 5");
	exgrid1.OLEDropMode(1/*exOLEDropManual*/);
	exgrid1.EndUpdate();
}
709
How can I find the order of the events
// AfterExpandItem event - Fired after an item is expanded (collapsed).
void onEvent_AfterExpandItem(int   _Item)
{
	;
	print( "AfterExpandItem" );
	print( _Item );
}

// AnchorClick event - Occurs when an anchor element is clicked.
void onEvent_AnchorClick(str   _AnchorID,str   _Options)
{
	;
	print( "AnchorClick" );
	print( _AnchorID );
	print( _Options );
}

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
void onEvent_BeforeExpandItem(int   _Item,COMVariant /*variant*/   _Cancel)
{
	;
	print( "BeforeExpandItem" );
	print( _Item );
}

// ButtonClick event - Occurs when user clicks on the cell's button.
void onEvent_ButtonClick(int   _Item,int   _ColIndex,COMVariant   _Key)
{
	;
	print( "ButtonClick" );
	print( _Item );
	print( _ColIndex );
	print( _Key );
}

// CellImageClick event - Fired after the user clicks on the image's cell area.
void onEvent_CellImageClick(int   _Item,int   _ColIndex)
{
	;
	print( "CellImageClick" );
	print( _Item );
	print( _ColIndex );
}

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	print( "CellStateChanged" );
	print( _Item );
	print( _ColIndex );
}

// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int   _Item,int   _ColIndex,COMVariant /*variant*/   _NewValue)
{
	;
	print( "Change" );
	print( _Item );
	print( _ColIndex );
	print( _NewValue );
}

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
	;
	print( "Click" );
}

// ColumnClick event - Fired after the user clicks on column's header.
void onEvent_ColumnClick(COM   _Column)
{
	;
	print( "ColumnClick" );
}

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void onEvent_DblClick(int   _Shift,int   _X,int   _Y)
{
	;
	print( "DblClick" );
	print( _Shift );
	print( _X );
	print( _Y );
	exgrid1.Edit();
}

// Edit event - Occurs just before editing the focused cell.
void onEvent_Edit(int   _Item,int   _ColIndex,COMVariant /*bool*/   _Cancel)
{
	;
	print( "Edit" );
	print( _Item );
	print( _ColIndex );
}

// EditClose event - Occurs when the edit operation ends.
void onEvent_EditClose()
{
	;
	print( "EditClose" );
}

// EditOpen event - Occurs when the edit operation starts.
void onEvent_EditOpen()
{
	;
	print( "EditOpen" );
}

// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
	;
	print( "FilterChange" );
}

// FilterChanging event - Notifies your application that the filter is about to change.
void onEvent_FilterChanging()
{
	;
	print( "FilterChanging" );
}

// FocusChanged event - Occurs when a new cell is focused.
void onEvent_FocusChanged()
{
	;
	print( "FocusChanged" );
}

// KeyDown event - Occurs when the user presses a key while an object has the focus.
void onEvent_KeyDown(COMVariant /*short*/   _KeyCode,int   _Shift)
{
	;
	print( "KeyDown" );
	print( _KeyCode );
	print( _Shift );
}

// KeyPress event - Occurs when the user presses and releases an ANSI key.
void onEvent_KeyPress(COMVariant /*short*/   _KeyAscii)
{
	;
	print( "KeyPress" );
	print( _KeyAscii );
}

// KeyUp event - Occurs when the user releases a key while an object has the focus.
void onEvent_KeyUp(COMVariant /*short*/   _KeyCode,int   _Shift)
{
	;
	print( "KeyUp" );
	print( _KeyCode );
	print( _Shift );
}

// LayoutChanged event - Occurs when column's position or column's size is changed.
void onEvent_LayoutChanged()
{
	;
	print( "LayoutChanged" );
}

// MouseDown event - Occurs when the user presses a mouse button.
void onEvent_MouseDown(int   _Button,int   _Shift,int   _X,int   _Y)
{
	;
	print( "MouseDown" );
	print( _Button );
	print( _Shift );
	print( _X );
	print( _Y );
}

// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int   _Button,int   _Shift,int   _X,int   _Y)
{
	;
}

// MouseUp event - Occurs when the user releases a mouse button.
void onEvent_MouseUp(int   _Button,int   _Shift,int   _X,int   _Y)
{
	;
	print( "MouseUp" );
	print( _Button );
	print( _Shift );
	print( _X );
	print( _Y );
}

// OffsetChanged event - Occurs when the scroll position has been changed.
void onEvent_OffsetChanged(boolean   _Horizontal,int   _NewVal)
{
	;
	print( "OffsetChanged" );
	print( _Horizontal );
	print( _NewVal );
}

// OversizeChanged event - Occurs when the right range of the scroll has been changed.
void onEvent_OversizeChanged(boolean   _Horizontal,int   _NewVal)
{
	;
	print( "OversizeChanged" );
	print( _Horizontal );
	print( _NewVal );
}

// RClick event - Fired when right mouse button is clicked
void onEvent_RClick()
{
	;
	print( "RClick" );
}

// ScrollButtonClick event - Occurs when the user clicks a button in the scrollbar.
void onEvent_ScrollButtonClick(int   _ScrollBar,int   _ScrollPart)
{
	;
	print( "ScrollButtonClick" );
	print( _ScrollBar );
	print( _ScrollPart );
}

// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	;
	print( "SelectionChanged" );
}

// Sort event - Fired when the control sorts a column.
void onEvent_Sort()
{
	;
	print( "Sort" );
}

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Editor,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Editor,var_Items;
	int h;
	str var_s;
	;

	super();

	exgrid1.BeginUpdate();
	var_s = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1BAmBhOCwMGwuDw2ExWJxmIx2HyGLv+TlykUCgABmGYzzObzuczWcKujzOa0ug02hz";
	var_s = var_s + "+r1Wtz2qoCA2QAYG1yk02YA3NMy2Yh8Sh202zx4gA4jxADM5XG4vHACy6ESdjM6XUZiZTMS5bwZSm1c83+yQHCYHk81Q8O7qW18u/9NG3vAf/y83u4PQWQA0ZVADq/z6";
	var_s = var_s + "um6rkuw7TqH+5bYJu+z5vE8z2N02cGweoDfwfCrbQfBqkNzBb6QfDLxp6+LlOs5cSOTEzlm7FYACFFwADvGIAGvGjzOu7MbwHHECQSmUOvS8cGwk20gQc2ycQs4MLvLD";
	var_s = var_s + "8MNtDSfyS+cmyZJzywa96axzDsTw6/x1AAL8xRbF8Vm65jkH/AL8QFNTqR6lsfuDIb2uDKTzTo88FTtIk+PK3SNRDKiew5JVDSnK08NnOUGRClkt0PFEDUjMwAENS4AM";
	var_s = var_s + "2zj4udNznujT1PTgjdGQg8c71RPtESvCL1JrO8lozQUj1nP6d1TKtc0U8dS1jCaNRzGhrxnGthWJYdjUrYwc2ZMMx2NB8czZNk4VLPMstzXD6Q6mltVjPNAT0m1CvnDt";
	var_s = var_s + "BxBXlI3PRKNzZDtjQ6cd5TQ/TSU0/r/udC0A1Ez1SUja8/QhWVavrSLfpxWNzXZR2CygmVtXXVl03Lg+BV+lV3UjeDgzEL4AXkcb6Pje5LZNDzhuLfrOX/RtT0TQbc5l";
	var_s = var_s + "ENSvBi2K5xlFdUHhN1ZhJ9F59WybOU7NjWTFkvxhGT9zIIQAWYHIABFqmnABSsT0HUaNYlI1dZmjNuUDRybzvIVWyDoOc54n8Oyxm9Ta9cSUaLbbg44+b4xiO9nY/pt7";
	var_s = var_s + "3u38Tuc52tpdruYxDVyUbBV+gYpu2c7PyGMKTt21cjnW6OvzO8PppUvP/Ljlt/wt/Vvn+v8V1eCdbgaa7fnMi8vyD0TnzGEJXyp/wJ3js98iXe+F3/hwGM3jeQZjTeUz";
	var_s = var_s + "nmOT5bTKJyqYcbm2c5bzXpqvsWw4FUkCO473wgB8cD9/znzO14n1+D4/efcTP4fl5+WKvxbbptmqV+B/ni/68R4514AvxeTAR50B3oPNei/iBhFgfErgeR4kBIiSAAJK";
	var_s = var_s + "SiC7PT5wMKIQ4fwfyHDzg2PwD4/B/jgg2PgA48AfjgB+RkeAARwAPGAA8jI4AADgAOMAAZGTyw6YbDkA7ZDaAHgxDyCxGgBw8EBBmJcS4LjAATDweBGoqjgAGP4jQ/Ac";
	var_s = var_s + "jwAHBsiQex8gPH+MF7pDxxkB";
	exgrid1.Images(COMVariant::createFromStr(var_s));
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
	exgrid1.GridLineStyle(4/*exGridLinesHDash*/);
	exgrid1.AutoEdit(false);
	exgrid1.ExpandOnDblClick(false);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Column")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Button")); com_Column1 = var_Column1;
			com_Column1.AllowSizing(false);
			com_Column1.Width(18);
			com_Column1.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
	var_Items = exgrid1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("parent");
		com_Items.CellImage(h,COMVariant::createFromInt(0),1);
		com_Items.InsertItem(h,"","child");
		com_Items.ExpandItem(h,true);
	exgrid1.EndUpdate();
}
708
Is it possible to select a column instead sorting it

// ColumnClick event - Fired after the user clicks on column's header.
void onEvent_ColumnClick(COM   _Column)
{
	// Column.Selected = True
	COM com_Column;
	anytype var_Column;
	;
	exgrid1.BeginUpdate();
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Selected(false);
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.Selected(false);
	exgrid1.Items().SelectAll();
	exgrid1.EndUpdate();
}

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.MarkSearchColumn(false);
	exgrid1.ShowFocusRect(false);
	exgrid1.SingleSel(false);
	exgrid1.FullRowSelect(1/*exRectSel*/);
	exgrid1.SortOnClick(0/*exNoSort*/);
	var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column1");
		com_Columns.Add("Column2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem("One"),COMVariant::createFromInt(1),"Three");
		com_Items.CellValue(com_Items.AddItem("Two"),COMVariant::createFromInt(1),"Four");
		com_Items.SelectAll();
	exgrid1.EndUpdate();
}
707
Is it possible to display empty strings for 0 values

public void init()
{
	COM com_Column,com_Editor,com_Items;
	anytype var_Column,var_Editor,var_Items;
	;

	super();

	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Currency")); com_Column = var_Column;
		com_Column.FormatColumn("dbl(value) ? currency(dbl(value)) : ``");
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(1/*EditType*/);
			com_Editor.Numeric(1/*exFloat*/);
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromReal(1.23));
		com_Items.AddItem(COMVariant::createFromReal(2.34));
		com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.AddItem(COMVariant::createFromReal(10000.99));
}
706
Is it possible to display empty strings for 0 values

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	exgrid1.Columns().Add("Number");
	COM::createFromVariant(exgrid1.Columns().Add("Currency")).ComputedField("%0 ? currency(%0) : ``");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromReal(1.23));
		com_Items.AddItem(COMVariant::createFromReal(2.34));
		com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.AddItem(COMVariant::createFromReal(10000.99));
}
705
How can I get the list of items as they are displayed

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.BackColorAlternate(WinApi::RGB2int(240,240,240));
	exgrid1.Columns().Add("Names");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem("Mantel");
		com_Items.AddItem("Mechanik");
		com_Items.AddItem("Motor");
		com_Items.AddItem("Murks");
		com_Items.AddItem("Märchen");
		com_Items.AddItem("Möhren");
		com_Items.AddItem("Mühle");
	var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.SortOrder(1/*SortAscending*/);
	exgrid1.EndUpdate();
	print( exgrid1.GetItems(COMVariant::createFromInt(1)) );
}
704
Is it possible to add new rows, as I type like in Excel

// EditClose event - Occurs when the edit operation ends.
void onEvent_EditClose()
{
	;
	exgrid1.Items().AddItem("");
}

public void init()
{
	COM com_Editor;
	anytype var_Editor;
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.AutoEdit(true);
	var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Default"))).Editor(); com_Editor = var_Editor;
	com_Editor.EditType(1/*EditType*/);
	exgrid1.FullRowSelect(0/*exColumnSel*/);
	exgrid1.Items().AddItem("");
	exgrid1.DrawGridLines(-1/*exAllLines*/);
	exgrid1.ScrollBars(15/*exDisableBoth*/);
	exgrid1.EndUpdate();
}
703
Is posible to reduce the size of the picture to be shown in the column's caption

public void init()
{
	;

	super();

	exgrid1.BeginUpdate();
	exgrid1.HTMLPicture("pic1","c:\\exontrol\\images\\zipdisk.gif");
	exgrid1.HeaderHeight(48);
	COM::createFromVariant(exgrid1.Columns().Add("DefaultSize")).HTMLCaption("Default-Size <img>pic1</img> Picture");
	COM::createFromVariant(exgrid1.Columns().Add("CustomSize")).HTMLCaption("Custom-Size <img>pic1:16</img> Picture");
	exgrid1.EndUpdate();
}
702
How can I change the color, font, bold etc for the items/cells in the same column or for the entire column

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Items;
	anytype var_Column,var_ConditionalFormat,var_Items;
	;

	super();

	exgrid1.BeginUpdate();
	var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("1"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.ApplyTo(1);
	exgrid1.Columns().Add("C1");
	var_Column = COM::createFromVariant(exgrid1.Columns().Add("C2")); com_Column = var_Column;
		com_Column.HeaderBold(true);
		com_Column.HTMLCaption("<fgcolor=FF0000>C2");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(10)),COMVariant::createFromInt(1),COMVariant::createFromInt(11));
		com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(12)),COMVariant::createFromInt(1),COMVariant::createFromInt(13));
	exgrid1.EndUpdate();
}
701
How can I filter the check-boxes (method 2)

public void init()
{
	COM com_Column,com_Editor,com_Items;
	anytype var_Column,var_Editor,var_Items;
	;

	super();

	var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
		var_Editor = com_Column.Editor(); com_Editor = var_Editor;
			com_Editor.EditType(19/*CheckValueType*/);
			com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.CustomFilter("checked||-1|||unchecked||0");
	var_Items = exgrid1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromBoolean(false));
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromBoolean(false));
		com_Items.AddItem(COMVariant::createFromBoolean(true));
		com_Items.AddItem(COMVariant::createFromBoolean(false));
}